gllvm
gllvm copied to clipboard
Content-addressed bitcode and object files
This is still WIP; it probably needs more work + cleanup to bring it to parity with the current behavior.
See #58.
OK let me know when it's ready. We should make sure the (right version of the) linux kernel still builds.
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 againstfoo.oinstead of its$hash.odual. - 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.cconcurrently might clobber the content-addressed paths, but such a build would already be at risk of writing clobbered object files.