| dnl This Source Code Form is subject to the terms of the Mozilla Public |
| dnl License, v. 2.0. If a copy of the MPL was not distributed with this |
| dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| dnl Check for the existence of various allocation headers/functions |
| AC_DEFUN([MOZ_CHECK_ALLOCATOR],[ |
| |
| MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h" |
| MALLOC_H= |
| |
| for file in $MALLOC_HEADERS; do |
| MOZ_CHECK_HEADER($file, [MALLOC_H=$file]) |
| if test "$MALLOC_H" != ""; then |
| AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>) |
| break |
| 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])) |
| |
| AC_MSG_CHECKING([for valloc in unistd.h]) |
| AC_EGREP_HEADER(valloc, unistd.h, |
| AC_DEFINE(HAVE_VALLOC) |
| AC_MSG_RESULT([yes]), |
| AC_MSG_RESULT([no])) |
| |
| |
| ]) |