[PATCH] D36758: [LLD COFF / PDB] Incrementally update the BuildId when writing a PDB.

Zachary Turner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 16 14:37:47 PDT 2017


zturner added a comment.

We can definitely make a list.  There are quite a few in PDB that we will need to work out.  However, we're kind of at the mercy of the ecosystem we're trying to support.  determinism was one goal, but making sure developers can debug their code (and making sure we can debug crashes generated in the wild) was another goal.  And those two goals conflict with each other in some ways.

I don't dispute the utility of reproducible builds, but at least right now, debug info is what's blocking us.  As far as I can tell there is no way to have both at the same time unless you have a post-processing step that strips out the non-deterministic portions of the debug info.  Which seems like something we'll have to look into when we get to that bridge, but at least immediately, it's not what's blocking us.

The line number case described earlier is one example.  People need to be able to continue to debug their code if they add a blank line (PDB needs to change even though EXE doesn't).

And to work with symbol and source server, EXEs need to re-use the same GUID.  We can still get determinism by adding flags such as /PDBGUID:{...} and /PDBAGE:n, but the default-out-of-the-box experience really needs to err on the side of actually working IMO.


Repository:
  rL LLVM

https://reviews.llvm.org/D36758





More information about the llvm-commits mailing list