5.7. Optional support libraries

Beyond the required support libraries, PMIx will use a number of further libraries if it finds them at configure time, and will build without them otherwise.

None of these is needed to produce a working PMIx. Each one either enables a capability that some sites want and others do not, or makes something PMIx already does faster — and the distinction matters: a missing library from the first group means a feature is simply absent, while a missing library from the second group means PMIx still works but does more of the work itself.

Important

The selection happens at configure time, not run time. A component is compiled only if its library was found, so an absent library is not something PMIx can report later or fall back from at run time — the code was never built. If you care whether a particular one was picked up, check the configure output summary rather than assuming.

5.7.2. Optional features

Each of these enables something PMIx cannot do otherwise. Their absence costs you that capability and nothing else.

Library

configure option

What it enables

MUNGE

--with-munge

Builds the psec/munge component, which authenticates PMIx connections using MUNGE credentials. Without it, the other psec components (native, none) remain available.

libesmtp

--with-smtp

Builds the plog/smtp component, which can emit log messages by email. Without it, the other plog components are unaffected.

libltdl

--with-libltdl

Builds the pdl/plibltdl component, an alternative to pdl/pdlopen for loading DSO components. pdlopen (priority 80) is preferred over plibltdl (50) where both are built.

Note

``dlopen`` is worth a word of its own. It is not a package you install — it is part of the C library on essentially every supported platform — but it is what pdl/pdlopen needs, and pdl is what loads MCA components built as DSOs. A build with neither pdlopen nor plibltdl can still work, but only if every component is compiled statically into the library.

5.7.3. Specifying where to find them

Every option above follows the same conventions as the required libraries: --with-FOO=DIR names an installation prefix and --with-FOO-libdir=LIBDIR names the library directory when it is not DIR/lib. They are listed in full under CLI options for optional support libraries.

One behavior is worth stating explicitly, because it differs from a plain search:

Important

Naming a library makes it mandatory. If you pass --with-zstd (with or without a path) and configure cannot find a usable Zstandard, it will abort rather than quietly build without it. That is deliberate — asking for something and silently not getting it is the failure mode these options exist to prevent. Omit the option entirely to get a best-effort search.

For example, to build against compression and MUNGE installations under /opt:

./configure --prefix=$HOME/pmix-install \
    --with-zstd=/opt/zstd \
    --with-munge=/opt/munge ...