Hides valloc(3)/pvalloc(3) on LP64.

These were removed from POSIX 2004. Hides the header declarations for all
targets, and hides the symbols for LP64.

Bug: 13935372
Change-Id: Id592f67e9b7051517a05f536e1373b30162e669c
This commit is contained in:
Dan Albert
2014-06-12 10:55:13 -07:00
parent 0f690d9eda
commit 5ee320dd35
6 changed files with 56 additions and 8 deletions

View File

@@ -61,6 +61,12 @@
#define Malloc(function) dl ## function
#endif
// valloc(3) and pvalloc(3) were removed from POSIX 2004. We do not include them
// for LP64, but the symbols remain in LP32 for binary compatibility.
#ifndef __LP64__
#define HAVE_DEPRECATED_MALLOC_FUNCS 1
#endif
// =============================================================================
// Structures
// =============================================================================
@@ -90,9 +96,14 @@ typedef void* (*MallocDebugMalloc)(size_t);
typedef size_t (*MallocDebugMallocUsableSize)(const void*);
typedef void* (*MallocDebugMemalign)(size_t, size_t);
typedef int (*MallocDebugPosixMemalign)(void**, size_t, size_t);
#if defined(HAVE_DEPRECATED_MALLOC_FUNCS)
typedef void* (*MallocDebugPvalloc)(size_t);
#endif
typedef void* (*MallocDebugRealloc)(void*, size_t);
#if defined(HAVE_DEPRECATED_MALLOC_FUNCS)
typedef void* (*MallocDebugValloc)(size_t);
#endif
struct MallocDebug {
MallocDebugCalloc calloc;
MallocDebugFree free;
@@ -101,9 +112,13 @@ struct MallocDebug {
MallocDebugMallocUsableSize malloc_usable_size;
MallocDebugMemalign memalign;
MallocDebugPosixMemalign posix_memalign;
#if defined(HAVE_DEPRECATED_MALLOC_FUNCS)
MallocDebugPvalloc pvalloc;
#endif
MallocDebugRealloc realloc;
#if defined(HAVE_DEPRECATED_MALLOC_FUNCS)
MallocDebugValloc valloc;
#endif
};
typedef bool (*MallocDebugInit)(HashTable*);