summaryrefslogtreecommitdiffstats
path: root/libc/stdlib/malloc-standard
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2006-02-25 04:03:33 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2006-02-25 04:03:33 +0000
commitcb6a88484ce0b5ffba2fe98a40e2d51f4af92eb8 (patch)
tree520f8e8d113184cfa7954ebd274564b8c255fa9a /libc/stdlib/malloc-standard
parente4461be66e2655058aef358b00050bc70ac72861 (diff)
downloaduClibc-alpine-cb6a88484ce0b5ffba2fe98a40e2d51f4af92eb8.tar.bz2
uClibc-alpine-cb6a88484ce0b5ffba2fe98a40e2d51f4af92eb8.tar.xz
Merge from trunk. Going pretty good so far. Kind of. Okay, not really.
Diffstat (limited to 'libc/stdlib/malloc-standard')
-rw-r--r--libc/stdlib/malloc-standard/Makefile.in21
-rw-r--r--libc/stdlib/malloc-standard/calloc.c5
-rw-r--r--libc/stdlib/malloc-standard/free.c8
-rw-r--r--libc/stdlib/malloc-standard/mallinfo.c9
-rw-r--r--libc/stdlib/malloc-standard/malloc.c2
-rw-r--r--libc/stdlib/malloc-standard/malloc.h12
-rw-r--r--libc/stdlib/malloc-standard/memalign.c12
-rw-r--r--libc/stdlib/malloc-standard/realloc.c9
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);
}
}