Bug#877359: clang: precompiled headers are not reproducible

Rebecca N. Palmer rebecca_palmer at zoho.com
Sat Oct 7 13:09:08 UTC 2017


The problems with current beignet look to be:

- file timestamps in INPUT_FILES_BLOCK (some of beignet's .h files are 
script-generated).  This part can be fixed in beignet.

- build path captured in ORIGINAL_PCH_DIR.  _Might_ be fixable in 
beignet by using clang (...) > /path/to/beignet.pch instead of clang 
(...) -o /path/to/beignet.pch, but that changes other things and I 
haven't yet checked whether the result works.

Relevant part of llvm-bcanalyzer -dump:

   </OPTIONS_BLOCK>
   <ORIGINAL_FILE abbrevid=5 op0=1/> blob data = 
'usr/lib/x86_64-linux-gnu/beignet/include/ocl.h'
   <ORIGINAL_FILE_ID op0=1/>
   <ORIGINAL_PCH_DIR abbrevid=6/> blob data = 
'/home/rnpalmer/Debian/builds/stackbuild/beignet/obj-x86_64-linux-gnu/backend/src/libocl//usr/lib/x86_64-linux-gnu/beignet'
   <INPUT_FILES_BLOCK NumWords=383 BlockCodeSize=4>
     <INPUT_FILE abbrevid=4 op0=1 op1=5685 op2=1507369184 op3=0 op4=0/> 
blob data = 'usr/lib/x86_64-linux-gnu/beignet/include/ocl_work_group.h'
     <INPUT_FILE abbrevid=4 op0=2 op1=18934 op2=1507369184 op3=0 op4=0/> 
blob data = 'usr/lib/x86_64-linux-gnu/beignet/include/ocl_simd.h'
(21 more similar lines - op2 are close but not all identical, and as 
POSIX timestamps, near the beginning of the build)



More information about the Pkg-llvm-team mailing list