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 248326 3d587e85f2a29bbb25260a706b866abc5eed727c
parent 248325 c8bed3614b4e2ec5ed64dd385391a12766165110
child 248327 5d801822e67fb64178ef4dcb2ef3ea7aca3c4df3
push id4489
push userraliiev@mozilla.com
push dateMon, 23 Feb 2015 15:17:55 +0000
treeherdermozilla-beta@fd7c3dc24146 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1083116
milestone37.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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)