diff options
Diffstat (limited to 'libc/stdlib/malloc')
-rw-r--r-- | libc/stdlib/malloc/Makefile.in | 25 | ||||
-rw-r--r-- | libc/stdlib/malloc/calloc.c | 4 | ||||
-rw-r--r-- | libc/stdlib/malloc/free.c | 7 | ||||
-rw-r--r-- | libc/stdlib/malloc/heap_debug.c | 5 | ||||
-rw-r--r-- | libc/stdlib/malloc/malloc.c | 8 | ||||
-rw-r--r-- | libc/stdlib/malloc/malloc.h | 3 | ||||
-rw-r--r-- | libc/stdlib/malloc/malloc_debug.c | 14 | ||||
-rw-r--r-- | libc/stdlib/malloc/memalign.c | 1 | ||||
-rw-r--r-- | libc/stdlib/malloc/realloc.c | 8 |
9 files changed, 40 insertions, 35 deletions
diff --git a/libc/stdlib/malloc/Makefile.in b/libc/stdlib/malloc/Makefile.in index 55831c379..73e0d6419 100644 --- a/libc/stdlib/malloc/Makefile.in +++ b/libc/stdlib/malloc/Makefile.in @@ -2,35 +2,32 @@ # # Copyright (C) 2002-2003 NEC Electronics Corporation # Copyright (C) 2002-2003 Miles Bader <miles@gnu.org> -# 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. # -CSRC:= malloc.c calloc.c free.c realloc.c memalign.c \ +CSRC := malloc.c calloc.c free.c realloc.c memalign.c \ heap_alloc.c heap_alloc_at.c heap_free.c # Turn on malloc debugging if requested ifeq ($(UCLIBC_MALLOC_DEBUGGING),y) -CSRC+=malloc_debug.c heap_debug.c -CFLAGS+=-DMALLOC_DEBUGGING -DHEAP_DEBUGGING +CSRC += malloc_debug.c heap_debug.c +CFLAGS += -DMALLOC_DEBUGGING -DHEAP_DEBUGGING ifeq ($(UCLIBC_UCLINUX_BROKEN_MUNMAP),y) -CFLAGS+=-DMALLOC_MMB_DEBUGGING +CFLAGS += -DMALLOC_MMB_DEBUGGING endif endif -STDLIB_MALLOC_DIR:=$(top_srcdir)libc/stdlib/malloc -STDLIB_MALLOC_OUT:=$(top_builddir)libc/stdlib/malloc +STDLIB_MALLOC_DIR := $(top_srcdir)libc/stdlib/malloc +STDLIB_MALLOC_OUT := $(top_builddir)libc/stdlib/malloc -STDLIB_MALLOC_SRC:=$(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC)) -STDLIB_MALLOC_OBJ:=$(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC)) +STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC)) +STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC)) -libc-a-$(MALLOC)+=$(STDLIB_MALLOC_OBJ) -libc-so-$(MALLOC)+=$(STDLIB_MALLOC_OBJ:.o=.os) +libc-$(MALLOC) += $(STDLIB_MALLOC_OBJ) -libc-multi-$(MALLOC)+=$(STDLIB_MALLOC_SRC) - -objclean-y+=stdlib_malloc_objclean +objclean-y += stdlib_malloc_objclean stdlib_malloc_objclean: $(RM) $(STDLIB_MALLOC_OUT)/*.{o,os} diff --git a/libc/stdlib/malloc/calloc.c b/libc/stdlib/malloc/calloc.c index 94031ce29..5925a9e0a 100644 --- a/libc/stdlib/malloc/calloc.c +++ b/libc/stdlib/malloc/calloc.c @@ -22,6 +22,8 @@ #include <string.h> #include <errno.h> +libc_hidden_proto(memset) + void * calloc(size_t nmemb, size_t lsize) { void *result; @@ -34,7 +36,7 @@ void * calloc(size_t nmemb, size_t lsize) return NULL; } if ((result=malloc(size)) != NULL) { - __memset(result, 0, size); + memset(result, 0, size); } return result; } diff --git a/libc/stdlib/malloc/free.c b/libc/stdlib/malloc/free.c index 81ec38cd9..81c718376 100644 --- a/libc/stdlib/malloc/free.c +++ b/libc/stdlib/malloc/free.c @@ -11,17 +11,16 @@ * Written by Miles Bader <miles@gnu.org> */ -#define munmap __munmap -#define sbrk __sbrk - #include <stdlib.h> #include <unistd.h> #include <sys/mman.h> +libc_hidden_proto(munmap) +libc_hidden_proto(sbrk) + #include "malloc.h" #include "heap.h" - static void free_to_heap (void *mem, struct heap *heap) { diff --git a/libc/stdlib/malloc/heap_debug.c b/libc/stdlib/malloc/heap_debug.c index 7dab95627..9e5b61c43 100644 --- a/libc/stdlib/malloc/heap_debug.c +++ b/libc/stdlib/malloc/heap_debug.c @@ -11,13 +11,14 @@ * Written by Miles Bader <miles@gnu.org> */ -#define vfprintf __vfprintf - #include <stdlib.h> #include <stdio.h> #include <stdarg.h> #include <string.h> +libc_hidden_proto(vfprintf) +libc_hidden_proto(fprintf) + #include "malloc.h" #include "heap.h" diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c index 6bc8d8773..2ec8b07da 100644 --- a/libc/stdlib/malloc/malloc.c +++ b/libc/stdlib/malloc/malloc.c @@ -11,14 +11,14 @@ * Written by Miles Bader <miles@gnu.org> */ -#define mmap __mmap -#define sbrk __sbrk - #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <sys/mman.h> +libc_hidden_proto(mmap) +libc_hidden_proto(sbrk) + #include "malloc.h" #include "heap.h" @@ -106,7 +106,7 @@ malloc_from_heap (size_t size, struct heap *heap) #else /* !MALLOC_USE_SBRK */ /* Otherwise, use mmap. */ -#ifdef __ARCH_HAS_MMU__ +#ifdef __ARCH_USE_MMU__ block = mmap ((void *)0, block_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); #else diff --git a/libc/stdlib/malloc/malloc.h b/libc/stdlib/malloc/malloc.h index 707cad13d..753205443 100644 --- a/libc/stdlib/malloc/malloc.h +++ b/libc/stdlib/malloc/malloc.h @@ -16,6 +16,7 @@ /* The system pagesize... */ extern size_t __pagesize; +libc_hidden_proto(__pagesize) #define MALLOC_PAGE_SIZE __pagesize /* The minimum size of block we request from the the system to extend the @@ -43,7 +44,7 @@ extern size_t __pagesize; heap, instead of mmap/munmap. This is a tradeoff -- sbrk is faster than mmap/munmap, and guarantees contiguous allocation, but is also less flexible, and causes the heap to only be shrinkable from the end. */ -#ifdef __ARCH_HAS_MMU__ +#ifdef __ARCH_USE_MMU__ # define MALLOC_USE_SBRK #endif diff --git a/libc/stdlib/malloc/malloc_debug.c b/libc/stdlib/malloc/malloc_debug.c index abe5546ca..6c74d78bb 100644 --- a/libc/stdlib/malloc/malloc_debug.c +++ b/libc/stdlib/malloc/malloc_debug.c @@ -11,14 +11,16 @@ * Written by Miles Bader <miles@gnu.org> */ -#define atoi __atoi -#define vfprintf __vfprintf - #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <stdarg.h> +libc_hidden_proto(atoi) +libc_hidden_proto(vfprintf) +libc_hidden_proto(putc) +libc_hidden_proto(getenv) + #include "malloc.h" #include "heap.h" @@ -42,7 +44,7 @@ __malloc_debug_printf (int indent, const char *fmt, ...) while (spaces > 0) { - __putc (' ', stderr); + putc (' ', stderr); spaces--; } @@ -50,7 +52,7 @@ __malloc_debug_printf (int indent, const char *fmt, ...) vfprintf (stderr, fmt, val); va_end (val); - __putc ('\n', stderr); + putc ('\n', stderr); __malloc_debug_indent (indent); } @@ -58,7 +60,7 @@ __malloc_debug_printf (int indent, const char *fmt, ...) void __malloc_debug_init (void) { - char *ev = __getenv ("MALLOC_DEBUG"); + char *ev = getenv ("MALLOC_DEBUG"); if (ev) { int val = atoi (ev); diff --git a/libc/stdlib/malloc/memalign.c b/libc/stdlib/malloc/memalign.c index ce13eb99d..5b248f3e2 100644 --- a/libc/stdlib/malloc/memalign.c +++ b/libc/stdlib/malloc/memalign.c @@ -30,6 +30,7 @@ \____ INIT ____/ \______ RETURNED _______/ \____ END ___/ */ +void *memalign (size_t alignment, size_t size); void * memalign (size_t alignment, size_t size) { diff --git a/libc/stdlib/malloc/realloc.c b/libc/stdlib/malloc/realloc.c index 8dcc35360..4d56565aa 100644 --- a/libc/stdlib/malloc/realloc.c +++ b/libc/stdlib/malloc/realloc.c @@ -15,6 +15,8 @@ #include <string.h> #include <errno.h> +libc_hidden_proto(memcpy) + #include "malloc.h" #include "heap.h" @@ -26,13 +28,13 @@ realloc (void *mem, size_t new_size) char *base_mem; /* Check for special cases. */ - if (! mem) - return malloc (new_size); if (! new_size) { free (mem); return malloc (new_size); } + if (! mem) + return malloc (new_size); /* Normal realloc. */ @@ -66,7 +68,7 @@ realloc (void *mem, size_t new_size) void *new_mem = malloc (new_size - MALLOC_HEADER_SIZE); if (new_mem) { - __memcpy (new_mem, mem, size - MALLOC_HEADER_SIZE); + memcpy (new_mem, mem, size - MALLOC_HEADER_SIZE); free (mem); } mem = new_mem; |