Add static linking support for codonrt library#675
Open
n0madic wants to merge 1 commit intoexaloop:developfrom
Open
Add static linking support for codonrt library#675n0madic wants to merge 1 commit intoexaloop:developfrom
n0madic wants to merge 1 commit intoexaloop:developfrom
Conversation
|
Thank you for your pull request. We require contributors to agree to our Contributor License Agreement (https://exaloop.io/legal/cla), and we don't have @bhanuprasad14 on file. In order for us to review and merge your code, please email info@exaloop.io to get yourself added. |
There was a problem hiding this comment.
Pull Request Overview
This PR adds static linking support for the Codon runtime library, enabling fully self-contained executables, while preserving dynamic linking as a fallback.
- Introduces
codonrt_staticandcodonrt_static_combinedCMake targets to build and merge static runtime dependencies - Updates
LLVMVisitor::writeToExecutableto detect and link againstlibcodonrt_static_combined.awhen available - Extends the install rules to include the combined static library
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| codon/cir/llvm/llvisitor.cpp | Detects and links the combined static Codon runtime library in writeToExecutable() |
| CMakeLists.txt | Defines static runtime library targets, platform-specific combination commands, and installs the combined archive |
Comments suppressed due to low confidence (1)
codon/cir/llvm/llvisitor.cpp:558
- [nitpick] Consider renaming
codonrtStatictocodonrtStaticPath(or similar) to clarify that this variable holds a filesystem path.
std::string codonrtStatic = "";
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add static linking support for Codon runtime
This PR introduces static linking capabilities for the Codon runtime library, addressing the need for self-contained executables without external runtime dependencies.
Changes:
codonrt_statictarget that builds a static version of the runtime librarycodonrt_static_combinedtarget that combines all dependencies into a single static librarywriteToExecutable()to prefer static linking whenlibcodonrt_static_combined.ais availableBenefits:
The implementation automatically detects the availability of the static runtime and falls back to dynamic linking if not found, ensuring existing workflows remain unaffected.
Test on MacOS: