Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix static builds on main #10165

Merged

Conversation

bwbarrett
Copy link
Member

A series of changes with the goal of allowing static builds to work on main, even when pkg-config is not already installed. This patch series also improves the general wrapper compiler behaviors and allows us to start tracking pkg-config module dependencies, as well as simplifying package checks (although moving from OPAL_CHECK_PACKAGE to OAC_CHECK_PACKAGE is a work in progress not completed in this patch series).

@bwbarrett bwbarrett added this to the v5.0.0 milestone Mar 25, 2022
@bwbarrett bwbarrett requested review from jsquyres and awlauria March 25, 2022 20:57
@bwbarrett bwbarrett force-pushed the cleanup/introduce-oac_check_package branch 4 times, most recently from 106bcf3 to 0bd7617 Compare March 26, 2022 15:24
@bwbarrett bwbarrett marked this pull request as draft March 26, 2022 15:52
@bwbarrett
Copy link
Member Author

Moving to draft for a bit; I realized that this PR needs to have the libnl checks integrated, because pmix links against libnl3.

@bwbarrett bwbarrett force-pushed the cleanup/introduce-oac_check_package branch 2 times, most recently from 667a8c5 to 3c6f88b Compare March 27, 2022 02:28
@bwbarrett bwbarrett marked this pull request as ready for review March 27, 2022 04:22
@bwbarrett
Copy link
Member Author

Moving to draft for a bit; I realized that this PR needs to have the libnl checks integrated, because pmix links against libnl3.

Libnl changes complete; this should be ready for review.

@jjhursey
Copy link
Member

bot:ibm:retest

@bwbarrett
Copy link
Member Author

Updated branch to fix conflicts created by merging #10166.

@bwbarrett bwbarrett force-pushed the cleanup/introduce-oac_check_package branch from 40b7bef to d213e3d Compare March 28, 2022 20:46
@bwbarrett
Copy link
Member Author

Updated the PMIx/PRRTE patch to include a slight change to opal_check_ofi, which was the only place that we were checking for PMIx structures in configure tests and had that test start failing (not OFI the component, just that test, which is why I missed it).

@bwbarrett bwbarrett force-pushed the cleanup/introduce-oac_check_package branch 2 times, most recently from 87ea489 to dd8fa8f Compare March 29, 2022 18:39
@bwbarrett
Copy link
Member Author

bot:aws:retest

Copy link
Contributor

@awlauria awlauria left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good. Some typos found

@bwbarrett bwbarrett force-pushed the cleanup/introduce-oac_check_package branch 2 times, most recently from 1e7907c to fc1c73c Compare March 30, 2022 19:44
PMIx Changes:
fbc2513 build: Delay adding DELAYED_LIBS even more
a83d564 Minor correction to client-get logic
4aa95ff In the case where the server is using a different dstore component, check that as well.
8a41b35 Remove the "<option> help" support
76850f6 Fix signed comparison warning
65df23e Ensure we check peer's gds for data
b13e7d4 Silence Coverity warning
2a34472 build: Clean up delayed flags
a1a5935 build: Use MCA env management for common/sse
e15de4b build: Wrapper/pkg-config improvements
680326c build: check_package static improvements
330d2d4 Merge pull request open-mpi#2529 from bwbarrett/bugfix/summary_stream
a819eeb build: Fix output stream bug in summary

PRRTE Changes:
c49eafc3ac Protect against proxy confusion
86bddb2abf Add some missing help verbiage
4e9029ccea slurm: fix breakage owing to rlm refactor
514553dedf Correctly determine when to daemonize backend prted
0db143da11 Some really minor cleanups
c784c22947 build: check_package static improvements
e0810859d7 Add missing CLI option and parsing
a9e2303807 Merge pull request open-mpi#1292 from bwbarrett/bugfix/summary_stream
94b57788ca Merge pull request open-mpi#1291 from rhc54/topic/py
fabb57117b build: Fix output stream bug in summary
17e6d86cbf Fix a problem with the "canonicalize_path" function

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Introduce OAC_CHECK_PACKAGE (naming so that it can be used in other
projects), which combines many of the pieces being done in
OPAL_CHECK_PACKAGE, OPAL_CHECK_WITHDIR, and in all the individual
package checks.

Additionally, OAC_CHECK_PACKAGE can use pkg-config and OPAL-style
wrapper compilers to retrieve package information, making finding
the right dependent libraries for static builds significantly sanier.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Expose the pkg-config option retrieval code in OAC_CHECK_PACKAGE as a
stand-alone macro.  Unlike PMIx and PRRTE, Open MPI does have a couple
of places (including internal hwloc builds) where parsing pkg-config
module files is useful, so don't duplicate code.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Fix a typo that broke package verification callbacks for
oac_check_package.  With this change, callbacks now fire
during the final verification phase.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Update the libnl version compatibility checks to work with
OAC_CHECK_PACKAGE.  There's some duplicate code to support
both OAC_CHECK_PACKAGE and OPAL_CHECK_PACKAGE that can be
removed when OPAL_CHECK_PACKAGE is retired.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Improve static application build handling in the wrapper compilers by
tracking both LIBS (the libraries libmpi/libopen-pal depend on) and
LIBS_STATIC (the libraries those libraries depend on), and improve
the behavior of static/dynamic linking with the wrapper compilers, to
make them similar to the pkg-config behaviors.  See the overly verbose
comment in opal_setup_wrappers.m4 for the intended behavior.

Finally, start tracking pkg-config module dependencies, when possible.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Update the libevent, hwloc, pmix, and prrte configure checks to use
OAC_CHECK_PACKAGE for external builds and to better pull in the
static library dependencies from the hwloc and pmix.  This solves
the missing libz problem for building applications against a
static OMPI/PMIx build.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
With the change in Libevent, HWLOC, and PMIx to use OAC_CHECK_PACKAGE,
there are no users of OPAL_GET_{LDFLAGS,LIBS}_FROM_PC, so we can
remove this file.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Cache the results of the checks to verify which versions of libnl
packages link against.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
@bwbarrett bwbarrett force-pushed the cleanup/introduce-oac_check_package branch from fc1c73c to 6ebef9a Compare March 30, 2022 21:22
@awlauria
Copy link
Contributor

bot:aws:retest

3 similar comments
@bwbarrett
Copy link
Member Author

bot:aws:retest

@bwbarrett
Copy link
Member Author

bot:aws:retest

@awlauria
Copy link
Contributor

awlauria commented Apr 1, 2022

bot:aws:retest

@bwbarrett bwbarrett merged commit 851ace6 into open-mpi:main Apr 1, 2022
@bwbarrett bwbarrett deleted the cleanup/introduce-oac_check_package branch April 1, 2022 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants