Package: clang-4.0
Version: 1:4.0.1-5
Severity: wishlist
User: reproducible-bui...@lists.alioth.debian.org
Usertags: toolchain randomness
Control: affects -1 beignet-opencl-icd liboclgrind-16.10
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

Generating a .pch precompiled header with clang gives a different result each time, even when run with faketime (i.e. probably not a timestamp) and separately from the rest of the build process (i.e. probably not a filesystem ordering issue).

Possibly a pseudorandom ordering of something within the file?? e.g. the method pool hash table http://clang.llvm.org/docs/PCHInternals.html

There are ~12 packages that ship .pch files, but I suspect that only 2 (beignet and oclgrind) actually build and use them in Debian; the rest look like either iOS/MacOS-only files (mostly documentation examples), or files that are called .pch but contain something entirely different.

$ faketime "2017-10-01 12:00:00" /usr/bin/clang-4.0 -cc1 -fno-builtin -ffp-contract=off -triple spir64 -cl-kernel-arg-info -fblocks -DGEN7_SAMPLER_CLAMP_BORDER_WORKAROUND -cl-std=CL2.0 -D__OPENCL_C_VERSION__=200 -I /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl//usr/local/lib/beignet//include/ --relocatable-pch -emit-pch -isysroot /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl -x cl /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl//usr/local/lib/beignet//include/ocl.h -o /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl//usr/local/lib/beignet//beignet_20.pch
E: cowdancer: cannot fstat ilistfile /.ilist
Can't read /proc/cpuinfo: Cannot allocate memory
$ md5sum usr/local/lib/beignet/*.pch
d55df577aa72cefc69c5b39df3491841  usr/local/lib/beignet/beignet_20.pch
$ faketime "2017-10-01 12:00:00" /usr/bin/clang-4.0 -cc1 -fno-builtin -ffp-contract=off -triple spir64 -cl-kernel-arg-info -fblocks -DGEN7_SAMPLER_CLAMP_BORDER_WORKAROUND -cl-std=CL2.0 -D__OPENCL_C_VERSION__=200 -I /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl//usr/local/lib/beignet//include/ --relocatable-pch -emit-pch -isysroot /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl -x cl /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl//usr/local/lib/beignet//include/ocl.h -o /home/rnpalmer/Debian/builds/stackbuild/beignet/build2/backend/src/libocl//usr/local/lib/beignet//beignet_20.pch
E: cowdancer: cannot fstat ilistfile /.ilist
Can't read /proc/cpuinfo: Cannot allocate memory
$ md5sum usr/local/lib/beignet/*.pch
e61f28727c32337a63bddced613fcf78  usr/local/lib/beignet/beignet_20.pch

Reply via email to