[Mesa-dev] [PATCH 2/4] anv: use cache uuid based on the build timestamp.
Michel Dänzer
michel at daenzer.net
Fri Jun 24 02:32:00 UTC 2016
On 23.06.2016 22:25, Emil Velikov wrote:
> On 23 June 2016 at 03:49, Michel Dänzer <michel at daenzer.net> wrote:
>> On 22.06.2016 21:04, Emil Velikov wrote:
>>> From: Emil Velikov <emil.velikov at collabora.com>
>>>
>>> Do not rely on the git sha1:
>>> - its current truncated form makes it less unique
>>> - it does not attribute for local (Vulkand or otherwise) changes
>>>
>>> Use a timestamp produced at the time of build. It's perfectly unique,
>>> unless someone explicitly thinkers with their system clock. Even then
>>> chances of producing the exact same one are very small, if not zero.
>>>
>>> Cc: Jason Ekstrand <jason at jlekstrand.net>
>>> Cc: mesa-stable at lists.freedesktop.org
>>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>>> ---
>>> Current approach uses seconds since Epoch, but if people prefer we
>>> can use nano seconds, combination of the two and/or other.
>>> ---
>>> src/intel/vulkan/.gitignore | 2 ++
>>> src/intel/vulkan/Makefile.am | 15 ++++++++++++++-
>>> src/intel/vulkan/anv_device.c | 4 ++--
>>> 3 files changed, 18 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/src/intel/vulkan/.gitignore b/src/intel/vulkan/.gitignore
>>> index a496146..7ef6a48 100644
>>> --- a/src/intel/vulkan/.gitignore
>>> +++ b/src/intel/vulkan/.gitignore
>>> @@ -2,3 +2,5 @@
>>> /anv_entrypoints.c
>>> /anv_entrypoints.h
>>> /dev_icd.json
>>> +/anv_timestamp.h.tmp
>>> +/anv_timestamp.h
>>> diff --git a/src/intel/vulkan/Makefile.am b/src/intel/vulkan/Makefile.am
>>> index 4d9ff90..8332ae5 100644
>>> --- a/src/intel/vulkan/Makefile.am
>>> +++ b/src/intel/vulkan/Makefile.am
>>> @@ -131,7 +131,20 @@ anv_entrypoints.c : anv_entrypoints_gen.py $(vulkan_include_HEADERS)
>>> $(AM_V_GEN) cat $(vulkan_include_HEADERS) |\
>>> $(PYTHON2) $(srcdir)/anv_entrypoints_gen.py code > $@
>>>
>>> -BUILT_SOURCES = $(VULKAN_GENERATED_FILES)
>>> +
>>> +.PHONY: anv_timestamp.h.tmp
>>> +anv_timestamp.h.tmp:
>>> + $(AM_V_GEN) echo "#define ANV_TIMESTAMP `date +%s`" > $@
>>
>> This conflicts with efforts to make builds reproducible, see e.g.
>> https://wiki.debian.org/ReproducibleBuilds . One technique used by such
>> efforts is to replace any timestamps with all 0s.
>>
> Thanks to letting me know before things got swapped with 0s. Is there
> a way to contact/check how other projects have handled/resolved this ?
The wiki page above has a link to
https://wiki.debian.org/ReproducibleBuilds/Contribute which lists
several ways to get in touch with people working on this.
>> Would it be possible to generate a hash over all source files listed in
>> any Makefile.sources, or something like that?
>>
> If you want to pursue that task please do.
I'm not going to work on this, I merely suggested a possible alternative.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the mesa-dev
mailing list