Bug #84608 Builds are not reproducible
Submitted: 23 Jan 2017 12:19 Modified: 24 Jan 2017 17:45
Reporter: Steinar Gunderson Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.5 OS:Any
Assigned to: CPU Architecture:Any

[23 Jan 2017 12:19] Steinar Gunderson
Description:
Current MySQL builds, even on Pushbuild, are not reproducible; they return different results depending on which directory they are built from (and Pushbuild uses several different directories). This is because absolute paths leak into debug information, and even worse, __FILE__. The latter moves code around enough that we've actually seen sysbench changes on the order of 4% in some tests.

How to repeat:
N/A

Suggested fix:
Use relative paths everywhere. CMake seemingly insists on using absolute paths, but we can insert our own layer between CMake and GCC to relativize all paths.
[24 Jan 2017 17:45] Paul DuBois
Posted by developer:
 
Noted in 8.0.1 changelog.

MySQL compilation in different directories produced different builds
to leakage of absolute paths into debug information and __FILE__.
[16 May 2017 8:56] Tor Didriksen
Posted by developer:
 
Pushed to 5.5.57 5.6.37 5.7.19
NULL merged to trunk
[16 May 2017 13:15] Paul DuBois
Posted by developer:
 
Noted in 5.5.57, 5.6.37, 5.7.19 changelogs.