Kevin O'Connor wrote:
What breaks if the version changes?
Reproducible builds; allowing to create a consensus that a particular binary is indeed the correct binary for a particular source code.
That is useful. A solution for stabilizing gcc/binutils output would also need to be found though, and that's a much harder problem.
Do you mean code generation? Reproducible builds are created using the same particular compiler version everywhere. I recommend this presentation for more information:
https://media.ccc.de/browse/congress/2014/31c3_-_6240_-_en_-_saal_g_-_201412...
For direct video download links: https://media.ccc.de/browse/congress/2014/31c3_-_6240_-_en_-_saal_g_-_201412...
It should be possible to force a static version with "make VERSION='xyz'", but I'd ask that that not be done for production builds as it makes handling trouble reports harder.
I would recommend to use `git describe --tags --dirty` output, which tells if there are any local modifications.
"git describe" is already there - see my recent email to Ian.
It's important that there's nothing additional in the string that changes depending on transient things outside of the source code. I.e. it needs to be nothing but describe output, and I think it would be nice if it were the default, so as to support reproducible builds out of the box.
//Peter