#!/bin/bash if [ ! -e coregrind/m_replacemalloc/vg_replace_malloc.c ]; then echo "Error: please start this script from the Valgrind source directory." exit 1 fi if grep -q -w libjemallocZdsoZa coregrind/m_replacemalloc/vg_replace_malloc.c; then echo "The libjemalloc patch is already present." exit 0 fi { cat <<'EOF' | patch -p0; } || exit $? Index: coregrind/m_replacemalloc/vg_replace_malloc.c =================================================================== --- coregrind/m_replacemalloc/vg_replace_malloc.c (revision 7759) +++ coregrind/m_replacemalloc/vg_replace_malloc.c (revision 7778) @@ -68,6 +68,10 @@ # error "Unknown platform" #endif +/* --- Soname of libjemalloc. --- */ + +#define m_jemalloc_soname libjemallocZdsoZa /* libjemalloc.so* */ + /* --- Soname of the GNU C++ library. --- */ #define m_libstdcxx_soname libstdcZpZpZa // libstdc++* @@ -203,6 +207,7 @@ // (from_so, from_fn, v's replacement) // malloc +ALLOC_or_NULL(m_jemalloc_soname, malloc, malloc); ALLOC_or_NULL(m_libstdcxx_soname, malloc, malloc); ALLOC_or_NULL(m_libc_soname, malloc, malloc); #if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) @@ -319,6 +324,7 @@ } // free +FREE(m_jemalloc_soname, free, free ); FREE(m_libstdcxx_soname, free, free ); FREE(m_libc_soname, free, free ); #if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) @@ -394,6 +400,7 @@ return v; \ } +CALLOC(m_jemalloc_soname, calloc); CALLOC(m_libc_soname, calloc); #if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) CALLOC(m_libc_soname, calloc_common); @@ -426,6 +433,7 @@ return v; \ } +REALLOC(m_jemalloc_soname, realloc); REALLOC(m_libc_soname, realloc); #if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) REALLOC(m_libc_soname, realloc_common); @@ -457,6 +465,7 @@ return v; \ } +MEMALIGN(m_jemalloc_soname, memalign); MEMALIGN(m_libc_soname, memalign); @@ -483,6 +492,7 @@ ((SizeT)pszB, size); \ } +VALLOC(m_jemalloc_soname, valloc); VALLOC(m_libc_soname, valloc); @@ -566,6 +576,7 @@ return VKI_ENOMEM; \ } +POSIX_MEMALIGN(m_jemalloc_soname, posix_memalign); POSIX_MEMALIGN(m_libc_soname, posix_memalign); #if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5) /* 27 Nov 07: it appears that xlc links into executables, a @@ -596,6 +607,7 @@ return pszB; \ } +MALLOC_USABLE_SIZE(m_jemalloc_soname, malloc_usable_size); MALLOC_USABLE_SIZE(m_libc_soname, malloc_usable_size); EOF make -s