Fix HypreDrive linking with static HYPRE - #366
zwx19961130 wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The new link list hard-codes stdc++ and duplicates ParMETIS/METIS path construction, which can break portability and maintainability and should be adjusted before approval.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates the superbuild configuration so HypreDrive can link successfully when HYPRE is built as a static library with SuperLU_DIST enabled, by ensuring HypreDrive receives the additional transitive link dependencies required by static HYPRE in that configuration.
Changes:
- Extend
HYPREDRV_HYPRE_LIBRARIESto include SuperLU_DIST, ParMETIS, METIS, and the C++ standard library whenENABLE_MPIandENABLE_SUPERLU_DISTare enabled.
File summaries
| File | Description |
|---|---|
| CMakeLists.txt | Adds additional transitive link libraries to the HypreDrive external project configuration for static HYPRE + SuperLU_DIST builds |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
7e4fba8 to
1f10844
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The change is narrowly scoped to the HypreDrive link library list and aligns with the stated goal of fixing static-HYPRE transitive dependency linkage for MPI+SuperLU_DIST builds.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0 new
- Review effort level: Lite
|
Fixed in #362, thank you! |
Summary
Fix HypreDrive linking when HYPRE is built as a static library with SuperLU_DIST support.
When SuperLU_DIST is enabled, HYPRE's static library requires additional transitive dependencies that are not currently passed to HypreDrive. This causes the
hypredrive-clilink step to fail.Add SuperLU_DIST, ParMETIS, METIS, and the C++ standard library to
HYPREDRV_HYPRE_LIBRARIESwhen MPI and SuperLU_DIST are enabled.Testing
Built the
hypredrivetarget with MPI and SuperLU_DIST enabled.Without these additional libraries, the HypreDrive executable fails during linking due to unresolved dependencies from static HYPRE.
With the additional dependencies,
hypredrive-clilinks successfully and thehypredrivetarget builds and installs successfully.