Skip to content

PMIx configure logic should fail configure if external cannot be used #1660

@jjhursey

Description

@jjhursey

Configure with:

./configure --with-pmix=/installs/pmix-1.1.3 --enable-mca-no-build=pmix-pmix114

On this particular machine PMIx 1.1.3 is installed, but pmix_common.h is missing a header so the configure check fails:

checking if user requested PMIx support(/installs/pmix-1.1.3)... yes
checking pmix.h usability... no
checking pmix.h presence... yes
configure: WARNING: pmix.h: present but cannot be compiled
configure: WARNING: pmix.h:     check for missing prerequisite headers?
configure: WARNING: pmix.h: see the Autoconf documentation
configure: WARNING: pmix.h:     section "Present But Cannot Be Compiled"
configure: WARNING: pmix.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------------------ ##
configure: WARNING:     ## Report this to http://www.open-mpi.org/community/help/ ##
configure: WARNING:     ## ------------------------------------------------------ ##
checking for pmix.h... no
checking if user requested PMI support... no
checking which components should be disabled... pmix-pmix114 
checking which components should be direct-linked into the library... 
checking which components should be run-time loadable... all
checking which components should be static... none
checking for projects containing MCA frameworks... opal, orte, ompi, oshmem

However, when we get down to the pmix component selection it is still trying to build the pmix112

+++ Configuring MCA framework pmix
checking for no configure components in framework pmix... isolated
checking for m4 configure components in framework pmix... cray, external, pmix114, s1, s2

--- MCA component pmix:isolated (no configuration)
checking for MCA component pmix:isolated compile mode... dso
checking if MCA component pmix:isolated can compile... yes

--- MCA component pmix:cray (m4 configuration macro)
checking for MCA component pmix:cray compile mode... dso
checking for Cray PMI support... checking for CRAY_PMI... no
checking if MCA component pmix:cray can compile... no

--- MCA component pmix:external (m4 configuration macro)
checking for MCA component pmix:external compile mode... dso
checking if MCA component pmix:external can compile... no

--- MCA component pmix:pmix114 (m4 configuration macro)
checking for MCA component pmix:pmix114 compile mode... dso
configure: OPAL configuring in opal/mca/pmix/pmix114/pmix
configure: running /bin/sh './configure' 
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating examples/Makefile
config.status: creating test/Makefile
config.status: creating test/simple/Makefile
config.status: creating src/include/private/autogen/config.h
config.status: creating include/pmix/autogen/config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: /bin/sh './configure' succeeded for opal/mca/pmix/pmix114/pmix
checking if MCA component pmix:pmix114 can compile... no

--- MCA component pmix:s1 (m4 configuration macro)
checking for MCA component pmix:s1 compile mode... dso
checking if MCA component pmix:s1 can compile... no

--- MCA component pmix:s2 (m4 configuration macro)
checking for MCA component pmix:s2 compile mode... dso
checking if MCA component pmix:s2 can compile... no

So notice that at the end of configure there are no pmix components available. Since Open MPI requires an PMIx component this should fail during configure, instead configure succeeds. It isn't until we try to run a program that is issue shows up...

@rhc54 You might want to be aware of this. It is lower priority for us at the moment, but If no one picks it up I'll try to look into it.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions