summaryrefslogtreecommitdiffstats
path: root/abs/extra/community/chromium/glibc-2.14.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/community/chromium/glibc-2.14.patch')
-rw-r--r--abs/extra/community/chromium/glibc-2.14.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/abs/extra/community/chromium/glibc-2.14.patch b/abs/extra/community/chromium/glibc-2.14.patch
new file mode 100644
index 0000000..1bfbbee
--- /dev/null
+++ b/abs/extra/community/chromium/glibc-2.14.patch
@@ -0,0 +1,51 @@
+--- trunk/src/third_party/tcmalloc/chromium/src/tcmalloc.cc 2011/06/21 07:36:46 89799
++++ trunk/src/third_party/tcmalloc/chromium/src/tcmalloc.cc 2011/06/21 07:37:01 89800
+@@ -150,6 +150,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 std::max;
+ using tcmalloc::PageHeap;
+ using tcmalloc::SizeMap;
+@@ -403,7 +410,7 @@
+ return tc_malloc(size);
+ }
+
+-void* (*__malloc_hook)(
++void* (*__MALLOC_HOOK_VOLATILE __malloc_hook)(
+ size_t size, const void* caller) = tc_ptmalloc_malloc_hook;
+
+ static void* tc_ptmalloc_realloc_hook(
+@@ -411,14 +418,14 @@
+ return tc_realloc(ptr, size);
+ }
+
+-void* (*__realloc_hook)(
++void* (*__MALLOC_HOOK_VOLATILE __realloc_hook)(
+ void* ptr, size_t size, const void* caller) = tc_ptmalloc_realloc_hook;
+
+ static void tc_ptmalloc_free_hook(void* ptr, const void* caller) {
+ tc_free(ptr);
+ }
+
+-void (*__free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook;
++void (*__MALLOC_HOOK_VOLATILE __free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook;
+
+ #endif
+
+@@ -1757,7 +1764,7 @@
+ 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
+
+ // ---Double free() debugging implementation -----------------------------------