bug 1083116 - build fails: malloc_decls.h conflicting types for 'malloc_usable_size' r=glandium
☠☠ backed out by 127c5aadbddd ☠ ☠
authorBrad Lassey <blassey@mozilla.com>
Tue, 06 Jan 2015 19:58:36 -0500
changeset 235473 3d587e85f2a29bbb25260a706b866abc5eed727c
parent 235472 c8bed3614b4e2ec5ed64dd385391a12766165110
child 235474 5d801822e67fb64178ef4dcb2ef3ea7aca3c4df3
push id366
push usercmanchester@mozilla.com
push dateThu, 08 Jan 2015 16:40:24 +0000
reviewersglandium
bugs1083116
milestone37.0a1
bug 1083116 - build fails: malloc_decls.h conflicting types for 'malloc_usable_size' r=glandium
configure.in
memory/build/malloc_decls.h
--- a/configure.in
+++ b/configure.in
@@ -3383,16 +3383,29 @@ for file in $MALLOC_HEADERS; do
   fi
 done
 
 MOZ_CHECK_HEADERS(alloca.h)
 
 AC_CHECK_FUNCS(strndup posix_memalign memalign)
 
 AC_CHECK_FUNCS(malloc_usable_size)
+MALLOC_USABLE_SIZE_CONST_PTR=const
+MOZ_CHECK_HEADERS([malloc.h], [
+  AC_MSG_CHECKING([whether malloc_usable_size definition can use const argument])
+  AC_TRY_COMPILE([#include <malloc.h>
+                  #include <stddef.h>
+                  size_t malloc_usable_size(const void *ptr);],
+                  [return malloc_usable_size(0);],
+                  AC_MSG_RESULT([yes]),
+                  AC_MSG_RESULT([no])
+                  MALLOC_USABLE_SIZE_CONST_PTR=)
+])
+AC_DEFINE_UNQUOTED([MALLOC_USABLE_SIZE_CONST_PTR],[$MALLOC_USABLE_SIZE_CONST_PTR])
+
 
 dnl In newer bionic headers, valloc is built but not defined,
 dnl so we check more carefully here.
 AC_MSG_CHECKING([for valloc in malloc.h])
 AC_EGREP_HEADER(valloc, malloc.h,
                 AC_DEFINE(HAVE_VALLOC)
                 AC_MSG_RESULT([yes]),
                 AC_MSG_RESULT([no]))
--- a/memory/build/malloc_decls.h
+++ b/memory/build/malloc_decls.h
@@ -10,21 +10,17 @@
  *   - argument types
  */
 
 #ifndef malloc_decls_h
 #  define malloc_decls_h
 
 #  include "jemalloc_types.h"
 
-#  if defined(__linux__) && (!defined(MOZ_MEMORY_ANDROID) || ANDROID_VERSION < 19)
-typedef void * usable_ptr_t;
-#  else
-typedef const void * usable_ptr_t;
-#  endif
+typedef MALLOC_USABLE_SIZE_CONST_PTR void * usable_ptr_t;
 
 #  define MALLOC_FUNCS_MALLOC 1
 #  define MALLOC_FUNCS_JEMALLOC 2
 #  define MALLOC_FUNCS_INIT 4
 #  define MALLOC_FUNCS_BRIDGE 8
 #  define MALLOC_FUNCS_ALL (MALLOC_FUNCS_INIT | MALLOC_FUNCS_BRIDGE | \
                             MALLOC_FUNCS_MALLOC | MALLOC_FUNCS_JEMALLOC)