[llvm-dev] RFC: Should the default LLVM build be deterministic?

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Tue May 3 09:03:46 PDT 2016

I don't think that "deterministic" is the right term (i.e. "current time" is an input of the build). 
Last month I spent a few hours debugging this (was trying to assert some "NFC" changes), so I definitely agree with you that the "current time" being part of the input of the build by default is not great, and I support disabling this. 


> On May 3, 2016, at 8:57 AM, Chris Bieneman via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> Hello LLVM-Dev,
> Today if a user checks out LLVM, configures with no options specified, and builds the result is non-deterministic. Meaning if you clean and build again the binaries are not identical. This impacts all target platforms equally and is caused by the default value of LLVM_ENABLE_TIMESTAMPS being On.
> I believe this is incorrect behavior, and I’m curious what the wider community thinks.
> It is my belief that the default LLVM configuration (meaning no options specified) should be deterministic, and that any option in our build/configuration system that can impact determinism should be disabled by default.
> I would like to hold this as a central requirement for build system changes.
> Thoughts?
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

More information about the llvm-dev mailing list