--- a/vendor/google-perftools-1.2/src/tcmalloc.cc 2011-02-24 02:09:12.000000000 -0800 +++ b/vendor/google-perftools-1.2/src/tcmalloc.cc 2011-11-11 12:46:13.704738476 -0800 @@ -137,6 +137,13 @@ # define WIN32_DO_PATCHING 1 #endif +// GLibc 2.14+ requires the hook functions be declared volatile, based on the value of the +// define __MALLOC_HOOK_VOLATILE. For compatibility with older/non-GLibc implementations, +// provide an empty definition. +#if !defined(__MALLOC_HOOK_VOLATILE) +#define __MALLOC_HOOK_VOLATILE +#endif + using STL_NAMESPACE::max; using STL_NAMESPACE::numeric_limits; using STL_NAMESPACE::vector; @@ -1669,5 +1676,5 @@ static void *MemalignOverride(size_t align, size_t size, const void *caller) MallocHook::InvokeNewHook(result, size); return result; } -void *(*__memalign_hook)(size_t, size_t, const void *) = MemalignOverride; +void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t, size_t, const void *) = MemalignOverride; #endif // #ifndef TCMALLOC_FOR_DEBUGALLOCATION