diff options
Diffstat (limited to 'libc/stdlib/malloc-standard')
-rw-r--r-- | libc/stdlib/malloc-standard/Makefile.in | 21 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/calloc.c | 5 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/free.c | 8 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/mallinfo.c | 9 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/malloc.c | 2 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/malloc.h | 12 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/memalign.c | 12 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/realloc.c | 9 |
8 files changed, 38 insertions, 40 deletions
diff --git a/libc/stdlib/malloc-standard/Makefile.in b/libc/stdlib/malloc-standard/Makefile.in index e566dad8c..1d29703c4 100644 --- a/libc/stdlib/malloc-standard/Makefile.in +++ b/libc/stdlib/malloc-standard/Makefile.in @@ -1,32 +1,29 @@ # Makefile for uClibc # # Copyright (C) 2000 by Lineo, inc. -# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> +# Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> # # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # # Turn on malloc debugging if requested ifeq ($(UCLIBC_MALLOC_DEBUGGING),y) -CFLAGS+=-D__MALLOC_DEBUGGING +CFLAGS += -D__MALLOC_DEBUGGING endif # calloc.c can be found at uClibc/libc/stdlib/calloc.c # valloc.c can be found at uClibc/libc/stdlib/valloc.c -CSRC:=malloc.c calloc.c realloc.c free.c memalign.c mallopt.c mallinfo.c +CSRC := malloc.c calloc.c realloc.c free.c memalign.c mallopt.c mallinfo.c -STDLIB_MALLOC_STANDARD_DIR:=$(top_srcdir)libc/stdlib/malloc-standard -STDLIB_MALLOC_STANDARD_OUT:=$(top_builddir)libc/stdlib/malloc-standard +STDLIB_MALLOC_STANDARD_DIR := $(top_srcdir)libc/stdlib/malloc-standard +STDLIB_MALLOC_STANDARD_OUT := $(top_builddir)libc/stdlib/malloc-standard -STDLIB_MALLOC_STANDARD_SRC:=$(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC)) -STDLIB_MALLOC_STANDARD_OBJ:=$(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC)) +STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC)) +STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC)) -libc-a-$(MALLOC_STANDARD)+=$(STDLIB_MALLOC_STANDARD_OBJ) -libc-so-$(MALLOC_STANDARD)+=$(STDLIB_MALLOC_STANDARD_OBJ:.o=.os) +libc-$(MALLOC_STANDARD) += $(STDLIB_MALLOC_STANDARD_OBJ) -libc-multi-$(MALLOC_STANDARD)+=$(STDLIB_MALLOC_STANDARD_SRC) - -objclean-y+=stdlib_malloc_standard_objclean +objclean-y += stdlib_malloc_standard_objclean stdlib_malloc_standard_objclean: $(RM) $(STDLIB_MALLOC_STANDARD_OUT)/*.{o,os} diff --git a/libc/stdlib/malloc-standard/calloc.c b/libc/stdlib/malloc-standard/calloc.c index b8c43d9dc..99e8884ad 100644 --- a/libc/stdlib/malloc-standard/calloc.c +++ b/libc/stdlib/malloc-standard/calloc.c @@ -16,6 +16,7 @@ #include "malloc.h" +libc_hidden_proto(memset) /* ------------------------------ calloc ------------------------------ */ void* calloc(size_t n_elements, size_t elem_size) @@ -54,7 +55,7 @@ void* calloc(size_t n_elements, size_t elem_size) assert(nclears >= 3); if (nclears > 9) - __memset(d, 0, clearsize); + memset(d, 0, clearsize); else { *(d+0) = 0; @@ -83,7 +84,7 @@ void* calloc(size_t n_elements, size_t elem_size) d = (size_t*)mem; /* Note the additional (sizeof(size_t)) */ clearsize = chunksize(p) - 2*(sizeof(size_t)); - __memset(d, 0, clearsize); + memset(d, 0, clearsize); } #endif } diff --git a/libc/stdlib/malloc-standard/free.c b/libc/stdlib/malloc-standard/free.c index 1b294d706..e0c6ef061 100644 --- a/libc/stdlib/malloc-standard/free.c +++ b/libc/stdlib/malloc-standard/free.c @@ -14,10 +14,9 @@ Hacked up for uClibc by Erik Andersen <andersen@codepoet.org> */ -#define munmap __munmap - #include "malloc.h" +libc_hidden_proto(munmap) /* ------------------------- __malloc_trim ------------------------- __malloc_trim is an inverse of sorts to __malloc_alloc. It gives memory @@ -402,13 +401,10 @@ void free(void* mem) */ else { - int ret; size_t offset = p->prev_size; av->n_mmaps--; av->mmapped_mem -= (size + offset); - ret = munmap((char*)p - offset, size + offset); - /* munmap returns non-zero on failure */ - assert(ret == 0); + munmap((char*)p - offset, size + offset); } UNLOCK; } diff --git a/libc/stdlib/malloc-standard/mallinfo.c b/libc/stdlib/malloc-standard/mallinfo.c index 029ceda1f..89c9a6e7e 100644 --- a/libc/stdlib/malloc-standard/mallinfo.c +++ b/libc/stdlib/malloc-standard/mallinfo.c @@ -16,9 +16,12 @@ #include "malloc.h" +libc_hidden_proto(fprintf) +libc_hidden_proto(stderr) /* ------------------------------ mallinfo ------------------------------ */ -struct mallinfo attribute_hidden __mallinfo(void) +libc_hidden_proto(mallinfo) +struct mallinfo mallinfo(void) { mstate av; struct mallinfo mi; @@ -78,7 +81,7 @@ struct mallinfo attribute_hidden __mallinfo(void) UNLOCK; return mi; } -strong_alias(__mallinfo,mallinfo) +libc_hidden_def(mallinfo) void malloc_stats(FILE *file) { @@ -88,7 +91,7 @@ void malloc_stats(FILE *file) file = stderr; } - mi = __mallinfo(); + mi = mallinfo(); fprintf(file, "total bytes allocated = %10u\n", (unsigned int)(mi.arena + mi.hblkhd)); fprintf(file, "total bytes in use bytes = %10u\n", (unsigned int)(mi.uordblks + mi.hblkhd)); fprintf(file, "total non-mmapped bytes allocated = %10d\n", mi.arena); diff --git a/libc/stdlib/malloc-standard/malloc.c b/libc/stdlib/malloc-standard/malloc.c index 7025e8335..10d421330 100644 --- a/libc/stdlib/malloc-standard/malloc.c +++ b/libc/stdlib/malloc-standard/malloc.c @@ -14,12 +14,12 @@ Hacked up for uClibc by Erik Andersen <andersen@codepoet.org> */ -#define _GNU_SOURCE #include "malloc.h" #ifdef __UCLIBC_HAS_THREADS__ pthread_mutex_t __malloc_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; +libc_hidden_data_def(__malloc_lock) #endif /* diff --git a/libc/stdlib/malloc-standard/malloc.h b/libc/stdlib/malloc-standard/malloc.h index 68d38cb3d..a3fabb0c4 100644 --- a/libc/stdlib/malloc-standard/malloc.h +++ b/libc/stdlib/malloc-standard/malloc.h @@ -14,10 +14,6 @@ Hacked up for uClibc by Erik Andersen <andersen@codepoet.org> */ -#define mmap __mmap -#define sysconf __sysconf -#define sbrk __sbrk - #include <features.h> #include <stddef.h> #include <unistd.h> @@ -25,11 +21,17 @@ #include <string.h> #include <malloc.h> #include <stdlib.h> +#include <sys/mman.h> +libc_hidden_proto(mmap) +libc_hidden_proto(sysconf) +libc_hidden_proto(sbrk) +libc_hidden_proto(abort) #ifdef __UCLIBC_HAS_THREADS__ # include <pthread.h> extern pthread_mutex_t __malloc_lock; +libc_hidden_proto(__malloc_lock) #endif #define LOCK __pthread_mutex_lock(&__malloc_lock) #define UNLOCK __pthread_mutex_unlock(&__malloc_lock) @@ -352,7 +354,7 @@ extern pthread_mutex_t __malloc_lock; #define MAP_ANONYMOUS MAP_ANON #endif -#ifdef __ARCH_HAS_MMU__ +#ifdef __ARCH_USE_MMU__ #define MMAP(addr, size, prot) \ (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS, 0, 0)) diff --git a/libc/stdlib/malloc-standard/memalign.c b/libc/stdlib/malloc-standard/memalign.c index bd9536272..27502893d 100644 --- a/libc/stdlib/malloc-standard/memalign.c +++ b/libc/stdlib/malloc-standard/memalign.c @@ -28,7 +28,7 @@ void* memalign(size_t alignment, size_t bytes) size_t nb; /* padded request size */ char* m; /* memory returned by malloc call */ mchunkptr p; /* corresponding chunk */ - char* brk; /* alignment point within p */ + char* _brk; /* alignment point within p */ mchunkptr newp; /* chunk to return */ size_t newsize; /* its size */ size_t leadsize; /* leading space before alignment point */ @@ -79,13 +79,13 @@ void* memalign(size_t alignment, size_t bytes) total room so that this is always possible. */ - brk = (char*)mem2chunk((unsigned long)(((unsigned long)(m + alignment - 1)) & + _brk = (char*)mem2chunk((unsigned long)(((unsigned long)(m + alignment - 1)) & -((signed long) alignment))); - if ((unsigned long)(brk - (char*)(p)) < MINSIZE) - brk += alignment; + if ((unsigned long)(_brk - (char*)(p)) < MINSIZE) + _brk += alignment; - newp = (mchunkptr)brk; - leadsize = brk - (char*)(p); + newp = (mchunkptr)_brk; + leadsize = _brk - (char*)(p); newsize = chunksize(p) - leadsize; /* For mmapped chunks, just adjust offset */ diff --git a/libc/stdlib/malloc-standard/realloc.c b/libc/stdlib/malloc-standard/realloc.c index 36bfe4d99..ae2d33bee 100644 --- a/libc/stdlib/malloc-standard/realloc.c +++ b/libc/stdlib/malloc-standard/realloc.c @@ -14,11 +14,10 @@ Hacked up for uClibc by Erik Andersen <andersen@codepoet.org> */ -#define mremap __mremap - #include "malloc.h" - +libc_hidden_proto(mremap) +libc_hidden_proto(memcpy) /* ------------------------------ realloc ------------------------------ */ void* realloc(void* oldmem, size_t bytes) @@ -128,7 +127,7 @@ void* realloc(void* oldmem, size_t bytes) assert(ncopies >= 3); if (ncopies > 9) - __memcpy(d, s, copysize); + memcpy(d, s, copysize); else { *(d+0) = *(s+0); @@ -228,7 +227,7 @@ void* realloc(void* oldmem, size_t bytes) /* Must alloc, copy, free. */ newmem = malloc(nb - MALLOC_ALIGN_MASK); if (newmem != 0) { - __memcpy(newmem, oldmem, oldsize - 2*(sizeof(size_t))); + memcpy(newmem, oldmem, oldsize - 2*(sizeof(size_t))); free(oldmem); } } |