Skip to content

Add an initializer for static binaries to use#653

Open
indirect wants to merge 1 commit into
parallaxsecond:mainfrom
confidential-dot-ai:static-initializer
Open

Add an initializer for static binaries to use#653
indirect wants to merge 1 commit into
parallaxsecond:mainfrom
confidential-dot-ai:static-initializer

Conversation

@indirect

Copy link
Copy Markdown

I'm working on a project that uses this crate, but that would ideally be built completely statically for reproducibility reasons. With a fully static binary, dlopen is an empty stub, which prevented this crate from working.

I'm extremely unsure if this is the best approach for the crate as a whole, but I can confirm this change does in fact solve my specific problem, making it possible to use the rest of the crate even when dlopen isn't available.

You can see it in practice (and try out using this code) over at https://github.com/lunal-dev/kettle.

Signed-off-by: André Arko <andre@arko.net>
@indirect indirect force-pushed the static-initializer branch from 199aa31 to 77f4fe5 Compare June 10, 2026 21:51
@Superhepper

Copy link
Copy Markdown
Collaborator

I mean it is not bad as first draft. One thing to think of would to be to make the unsafe blocks as small as possible. From experience I can tell you that a lot of bad things can happen when you try to be clever inside of unsafe.

Another thing I wonder about is if it would be interesting in the bundled feature to have the option to link everything statically.

@indirect

Copy link
Copy Markdown
Author

I would love to have a feature that makes everything static! That would straight up solve my use-case entirely.

I will give this another pass soon to see if I can shrink the unsafes and get all the tests passing again now that I have rebased.

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.

2 participants