On Fri, Jun 24, 2016 at 11:59 AM, Emil Velikov <emil.l.veli...@gmail.com> wrote:
> From: Emil Velikov <emil.veli...@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. > > v2: Remove .tmp rule. Its not needed since we want for the header to be > regenerated on each time we call make (Eric). > > v3: > - Honour SOURCE_DATE_EPOCH, to make the build reproducible (Michel) > - Replace the generated header with a define, to prevent needless > builds on consecutive `make' and/or `make install' calls. (Dave) > > v4: > - Keep the timestamp generation at make time. (Jason) > > Cc: Michel Dänzer <mic...@daenzer.net> > Cc: Dave Airlie <airl...@gmail.com> > Cc: Jason Ekstrand <ja...@jlekstrand.net> > Cc: mesa-sta...@lists.freedesktop.org > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > This should resolve the incremental builds, yet the solution looks quite > nasty. As always, input on a cleaner one is appreciated. > --- > configure.ac | 2 ++ > src/intel/vulkan/Makefile.am | 12 ++++++++---- > src/intel/vulkan/Makefile.sources | 4 +++- > src/intel/vulkan/anv_device.c | 3 +-- > 4 files changed, 14 insertions(+), 7 deletions(-) > > diff --git a/configure.ac b/configure.ac > index cc9bc47..acdb8c0 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -2593,6 +2593,8 @@ AC_SUBST([XA_MINOR], $XA_MINOR) > AC_SUBST([XA_TINY], $XA_TINY) > AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY") > > +AC_SUBST([TIMESTAMP_CMD], '`test $(SOURCE_DATE_EPOCH) && echo > $(SOURCE_DATE_EPOCH) || date +%s`') > + > AC_ARG_ENABLE(valgrind, > [AS_HELP_STRING([--enable-valgrind], > [Build mesa with valgrind support (default: > auto)])], > diff --git a/src/intel/vulkan/Makefile.am b/src/intel/vulkan/Makefile.am > index 4d9ff90..c2ebc28 100644 > --- a/src/intel/vulkan/Makefile.am > +++ b/src/intel/vulkan/Makefile.am > @@ -33,10 +33,11 @@ lib_LTLIBRARIES = libvulkan_intel.la > check_LTLIBRARIES = libvulkan-test.la > > PER_GEN_LIBS = \ > - libanv-gen7.la \ > - libanv-gen75.la \ > - libanv-gen8.la \ > - libanv-gen9.la > + libanv-device.la \ > + libanv-gen7.la \ > + libanv-gen75.la \ > + libanv-gen8.la \ > + libanv-gen9.la > > noinst_LTLIBRARIES = $(PER_GEN_LIBS) > > @@ -63,6 +64,9 @@ AM_CPPFLAGS = \ > > AM_CFLAGS = -Wno-override-init -msse2 > > +libanv_device_la_CPPFLAGS = $(AM_CPPFLAGS) > -DANV_TIMESTAMP=\"$(TIMESTAMP_CMD)\" > How does doing it this way fix the "make && make install" problem? It needs to update the timestamp even if anv_device.c doesn't change. > +libanv_device_la_SOURCES = $(ANV_DEVICE_FILES) > + > libanv_gen7_la_CFLAGS = $(AM_CFLAGS) -DGEN_VERSIONx10=70 > libanv_gen7_la_SOURCES = $(GEN7_FILES) > > diff --git a/src/intel/vulkan/Makefile.sources > b/src/intel/vulkan/Makefile.sources > index aa1459a..e4e4884 100644 > --- a/src/intel/vulkan/Makefile.sources > +++ b/src/intel/vulkan/Makefile.sources > @@ -24,7 +24,6 @@ VULKAN_FILES := \ > anv_batch_chain.c \ > anv_cmd_buffer.c \ > anv_descriptor_set.c \ > - anv_device.c \ > anv_dump.c \ > anv_formats.c \ > anv_genX.h \ > @@ -52,6 +51,9 @@ VULKAN_FILES := \ > genX_pipeline_util.h \ > vk_format_info.h > > +ANV_DEVICE_FILES := \ > + anv_device.c > + > VULKAN_WSI_WAYLAND_FILES := \ > anv_wsi_wayland.c > > diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c > index ea8e875..b463d44 100644 > --- a/src/intel/vulkan/anv_device.c > +++ b/src/intel/vulkan/anv_device.c > @@ -28,7 +28,6 @@ > #include <fcntl.h> > > #include "anv_private.h" > -#include "git_sha1.h" > #include "util/strtod.h" > #include "util/debug.h" > > @@ -426,7 +425,7 @@ void > anv_device_get_cache_uuid(void *uuid) > { > memset(uuid, 0, VK_UUID_SIZE); > - snprintf(uuid, VK_UUID_SIZE, "anv-%s", MESA_GIT_SHA1 + 4); > + snprintf(uuid, VK_UUID_SIZE, "anv-%s", ANV_TIMESTAMP); > } > > void anv_GetPhysicalDeviceProperties( > -- > 2.8.2 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev