xref: /llvm-project/llvm/utils/gn/docs/deterministic.md (revision ead0b76382a5a20e8164583d86900de5b3fa9288)
1*ead0b763SNico WeberDeterministic builds with LLVM's GN build
2*ead0b763SNico Weber=========================================
3*ead0b763SNico Weber
4*ead0b763SNico WeberSummary: Use the following args.gn.
5*ead0b763SNico Weber
6*ead0b763SNico Weber    use_relative_paths_in_debug_info = true
7*ead0b763SNico Weber
8*ead0b763SNico WeberIt is possible to produce [locally deterministic][1] builds of LLVM
9*ead0b763SNico Weberwith the GN build. It requires some configuration though.
10*ead0b763SNico Weber
11*ead0b763SNico Weber1. Make debug info use relative paths by setting
12*ead0b763SNico Weber   `use_relative_paths_in_debug_info = true` in your `args.gn` file. With this
13*ead0b763SNico Weber   set, current debuggers need minor configuration to keep working.  See
14*ead0b763SNico Weber   "Getting to local determinism" and "Getting debuggers to work well with
15*ead0b763SNico Weber   locally deterministic builds" in the [deterministic builds][1] documentation
16*ead0b763SNico Weber   for details.
17*ead0b763SNico Weber
18*ead0b763SNico Weber1: http://blog.llvm.org/2019/11/deterministic-builds-with-clang-and-lld.html
19