* gnu/packages/patches/mesa-fix-32bit-test-failures.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gl.scm (mesa)[source]: Use it.
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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
 | 
						|
 |