Skip to content

[mypyc] Internally support static linking mode - #22112

Open
jhance wants to merge 1 commit into
python:masterfrom
jhance:static-linking
Open

jhance wants to merge 1 commit into
python:masterfrom
jhance:static-linking

Conversation

@jhance

@jhance jhance commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator

Static linking is useful for advanced users. Users of monorepo build systems (bazel, buck2) often have a preference for statically linking literally everything, and such build systems give the necessary infra to do so. This enables more advanced optimization from the compiler (for example enabling the use of LTO, potentially even in one unit with the python interpreter themselves).

This feature is not exposed publicly but requires quite a lot of renames and #ifdefs to support using static linking instead of capsules. Groups have to be renamed with an additional suffix for uniqueness across compilation units and a bunch of librt functions are enabled to be prefixed (for potentially being non-static).

Users who wish to use this advanced mode can call it from mypyc_build() with particular CompilationOptions. Naturally the user is required to figure out how to actually invoke the linker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant