]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: hno
authoramosjeffries <>
Mon, 25 Feb 2008 10:41:38 +0000 (10:41 +0000)
committeramosjeffries <>
Mon, 25 Feb 2008 10:41:38 +0000 (10:41 +0000)
Bug #2175: Update valgrind support for valgrind-3.3.0

Valgrind memcheck rearranged the names of it's support macros in
version 3.2.0 to better represent the actual function, and now the
old names has been removed starting with version 3.3.0 causing
build a failure if --with-valgrind-debug is used.

this patch updates Squid to use the new valgrind macro names, and
adds a little glue to be compatible with older valgrind versions

include/config.h
lib/MemPool.cc

index c4683203103aca25cf59ebc2601605ab4ba10fbf..a72ec50b5ef66e4520133a723f105286566cf5cc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: config.h,v 1.25 2007/09/20 11:07:53 amosjeffries Exp $
+ * $Id: config.h,v 1.25.2.1 2008/02/25 03:41:38 amosjeffries Exp $
  *
  * AUTHOR: Duane Wessels
  *
@@ -440,12 +440,22 @@ typedef union {
  */
 #if WITH_VALGRIND
 #include <valgrind/memcheck.h>
+#undef VALGRIND_MAKE_NOACCESS
+#undef VALGRIND_MAKE_WRITABLE
+#undef VALGRIND_MAKE_READABLE
+/* A little glue for older valgrind version prior to 3.2.0 */
+#ifndef VALGRIND_MAKE_MEM_NOACCESS
+#define VALGRIND_MAKE_MEM_NOACCESS VALGRIND_MAKE_NOACCESS
+#define VALGRIND_MAKE_MEM_UNDEFINED VALGRIND_MAKE_WRITABLE
+#define VALGRIND_MAKE_MEM_DEFINED VALGRIND_MAKE_READABLE
+#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE VALGRIND_CHECK_WRITABLE
+#endif
 #else
-#define VALGRIND_MAKE_NOACCESS(a,b) (0)
-#define VALGRIND_MAKE_WRITABLE(a,b) (0)
-#define VALGRIND_MAKE_READABLE(a,b) (0)
-#define VALGRIND_CHECK_WRITABLE(a,b) (0)
-#define VALGRIND_CHECK_READABLE(a,b) (0)
+#define VALGRIND_MAKE_MEM_NOACCESS(a,b) (0)
+#define VALGRIND_MAKE_MEM_UNDEFINED(a,b) (0)
+#define VALGRIND_MAKE_MEM_DEFINED(a,b) (0)
+#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,b) (0)
+#define VALGRIND_CHECK_MEM_IS_DEFINED(a,b) (0)
 #define VALGRIND_MALLOCLIKE_BLOCK(a,b,c,d)
 #define VALGRIND_FREELIKE_BLOCK(a,b)
 #define RUNNING_ON_VALGRIND 0
index 2c660f71daea6790255773ee83d84cc335ac1b42..7f550d2e66ea37aa594efb3733a74e333311beca 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: MemPool.cc,v 1.10 2007/11/13 23:25:33 rousskov Exp $
+ * $Id: MemPool.cc,v 1.10.2.1 2008/02/25 03:41:39 amosjeffries Exp $
  *
  * DEBUG: section 63    Low Level Memory Pool Management
  * AUTHOR: Alex Rousskov, Andres Kroonmaa, Robert Collins
@@ -211,7 +211,7 @@ MemChunk::MemChunk(MemPool *aPool)
     for (int i = 1; i < pool->chunk_capacity; i++) {
        *Free = (void *) ((char *) Free + pool->obj_size);
        void **nextFree = (void **)*Free;
-       (void) VALGRIND_MAKE_NOACCESS(Free, pool->obj_size);
+       (void) VALGRIND_MAKE_MEM_NOACCESS(Free, pool->obj_size);
        Free = nextFree;
     }
     nextFreeChunk = pool->nextFreeChunk;
@@ -277,7 +277,7 @@ MemPool::push(void *obj)
     Free = (void **)obj;
     *Free = freeCache;
     freeCache = obj;
-    (void) VALGRIND_MAKE_NOACCESS(obj, obj_size);
+    (void) VALGRIND_MAKE_MEM_NOACCESS(obj, obj_size);
 }
 
 /*
@@ -294,7 +294,7 @@ MemPool::get()
     /* first, try cache */
     if (freeCache) {
        Free = (void **)freeCache;
-       (void) VALGRIND_MAKE_READABLE(Free, obj_size);
+       (void) VALGRIND_MAKE_MEM_DEFINED(Free, obj_size);
        freeCache = *Free;
        *Free = NULL;
        return Free;
@@ -317,7 +317,7 @@ MemPool::get()
        /* last free in this chunk, so remove us from perchunk freelist chain */
        nextFreeChunk = chunk->nextFreeChunk;
     }
-    (void) VALGRIND_MAKE_READABLE(Free, obj_size);
+    (void) VALGRIND_MAKE_MEM_DEFINED(Free, obj_size);
     return Free;
 }
 
@@ -557,7 +557,7 @@ void
 MemImplementingAllocator::free(void *obj)
 {
     assert(obj != NULL);
-    (void) VALGRIND_CHECK_WRITABLE(obj, obj_size);
+    (void) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(obj, obj_size);
     deallocate(obj);
     ++free_calls;
 }
@@ -602,10 +602,10 @@ MemPool::convertFreeCacheToChunkFreeCache()
        assert(splayLastResult == 0);
        assert(chunk->inuse_count > 0);
        chunk->inuse_count--;
-       (void) VALGRIND_MAKE_READABLE(Free, sizeof(void *));
+       (void) VALGRIND_MAKE_MEM_DEFINED(Free, sizeof(void *));
        freeCache = *(void **)Free;     /* remove from global cache */
        *(void **)Free = chunk->freeList;       /* stuff into chunks freelist */
-       (void) VALGRIND_MAKE_NOACCESS(Free, sizeof(void *));
+       (void) VALGRIND_MAKE_MEM_NOACCESS(Free, sizeof(void *));
        chunk->freeList = Free;
        chunk->lastref = squid_curtime;
     }