summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/mesa-fix-32bit-test-failures.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/mesa-fix-32bit-test-failures.patch')
-rw-r--r--gnu/packages/patches/mesa-fix-32bit-test-failures.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/patches/mesa-fix-32bit-test-failures.patch b/gnu/packages/patches/mesa-fix-32bit-test-failures.patch
new file mode 100644
index 0000000000..e21e87cef6
--- /dev/null
+++ b/gnu/packages/patches/mesa-fix-32bit-test-failures.patch
@@ -0,0 +1,58 @@
+Fix a test failure when building for 32 bit architectures:
+
+http://lists.gnu.org/archive/html/guix-devel/2017-04/msg00381.html
+
+Patch copied from upstream source repository:
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=61bbb25a080e48a8ca897ba7f6e73cc6a8e9b5b8
+
+From 61bbb25a080e48a8ca897ba7f6e73cc6a8e9b5b8 Mon Sep 17 00:00:00 2001
+From: Grazvydas Ignotas <notasas@gmail.com>
+Date: Thu, 9 Mar 2017 02:54:53 +0200
+Subject: [PATCH] util/disk_cache: fix size subtraction on 32bit
+
+Negating size_t on 32bit produces a 32bit result. This was effectively
+adding values close to UINT_MAX to the cache size (the files are usually
+small) instead of intended subtraction.
+Fixes 'make check' disk_cache failures on 32bit.
+
+Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
+Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
+---
+ src/util/disk_cache.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c
+index 5470688df3..facdcecf7c 100644
+--- a/src/util/disk_cache.c
++++ b/src/util/disk_cache.c
+@@ -603,7 +603,7 @@ evict_random_item(struct disk_cache *cache)
+ free(dir_path);
+
+ if (size) {
+- p_atomic_add(cache->size, - size);
++ p_atomic_add(cache->size, - (uint64_t)size);
+ return;
+ }
+
+@@ -624,7 +624,7 @@ evict_random_item(struct disk_cache *cache)
+ free(dir_path);
+
+ if (size)
+- p_atomic_add(cache->size, - size);
++ p_atomic_add(cache->size, - (uint64_t)size);
+ }
+
+ void
+#@@ -646,7 +646,7 @@ disk_cache_remove(struct disk_cache *cache, const cache_key key)
+# free(filename);
+#
+# if (sb.st_size)
+#- p_atomic_add(cache->size, - sb.st_size);
+#+ p_atomic_add(cache->size, - (uint64_t)sb.st_size);
+# }
+#
+# /* From the zlib docs:
+--
+2.12.2
+