https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92717
Bug ID: 92717 Summary: precompiled headers non-deterministic Product: gcc Version: 9.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gnu.org at mrks dot info Target Milestone: --- I found that introducing precompiled headers to my project causes ccache lookups to fail. I tracked it down to the gcc output not being deterministic: # /usr/bin/c++ -x c++-header -include test.hxx -o test.hxx.gch -c test.hxx.cxx && md5sum test.hxx.gch 3a0efb998351939f4ed8efcfce1c0015 test.hxx.gch # /usr/bin/c++ -x c++-header -include test.hxx -o test.hxx.gch -c test.hxx.cxx && md5sum test.hxx.gch d295cbe3613100e6d989e62e3aafad6c test.hxx.gch Both test.hxx and test.hxx.cxx are empty. The used gcc version is 9.2.1-9ubuntu2. With clang (clang++ -cc1 test.hxx -emit-pch -o test.hxx.pch), the hashes match. When compiling with save-temps, the ii and s files match. As builds of regular C(++) files are deterministic (as expected), I suspect that this might be a bug.