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

Content-addressed bitcode and object files #59

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

woodruffw
Copy link
Collaborator

@woodruffw woodruffw commented Mar 2, 2022

This is still WIP; it probably needs more work + cleanup to bring it to parity with the current behavior.

See #58.

@ianamason
Copy link
Member

OK let me know when it's ready. We should make sure the (right version of the) linux kernel still builds.

@woodruffw
Copy link
Collaborator Author

Leaving some notes to myself:

  • This approach needs to be a little more thoughtful. It currently it blindly creates a list of ($hash.bc, $hash.o) pairs that never get merged back in, since the ultimate executable is linked against foo.o instead of its $hash.o dual.
  • There are probably still some sources of unsoundness left, although they're maybe no more unsound than the misbehaving build system that would trigger them. In particular, a build system that recompiles foo.c concurrently might clobber the content-addressed paths, but such a build would already be at risk of writing clobbered object files.

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