]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bug #2175: Update valgrind support for valgrind-3.3.0
authorhno <>
Mon, 7 Jan 2008 22:47:08 +0000 (22:47 +0000)
committerhno <>
Mon, 7 Jan 2008 22:47:08 +0000 (22:47 +0000)
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 7bb9d3755693d41ca2084b30261ddadaf9c61468..e0ac205ee3f4876f52f1995053da581d0cff95f2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: config.h,v 1.26 2007/12/14 23:11:44 amosjeffries Exp $
+ * $Id: config.h,v 1.27 2008/01/07 15:47:08 hno Exp $
  *
  * AUTHOR: Duane Wessels
  *
@@ -432,12 +432,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..5983aafb45e860471df375814bd47dfe353b0777 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.11 2008/01/07 15:47:08 hno 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;
     }