diff options
author | Roland McGrath <roland@hack.frob.com> | 2012-08-17 11:29:45 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2012-08-17 11:29:45 -0700 |
commit | 750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14 (patch) | |
tree | 2901a662169f86b152d62b3a67b157e89fd022c1 | |
parent | 2ae1ae5cf441a90171ff483e3f0de6e8a9d611e4 (diff) | |
download | glibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.tar.gz glibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.tar.xz glibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.zip |
Make malloc build for no-threads configurations.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | malloc/arena.c | 12 | ||||
-rw-r--r-- | malloc/malloc.c | 3 | ||||
-rw-r--r-- | sysdeps/generic/malloc-machine.h | 11 |
4 files changed, 25 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index fd40eec8c9..62a6916c93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,17 @@ 2012-08-17 Roland McGrath <roland@hack.frob.com> + * sysdeps/generic/malloc-machine.h (MUTEX_INITIALIZER): New macro. + (atomic_full_barrier, atomic_read_barrier, atomic_write_barrier): + Macros removed. + * malloc/arena.c (save_malloc_hook, save_free_hook): Conditionalize on + [!NO_THREADS]. + (malloc_atfork, free_atfork, atfork_recursive_cntr): Likewise. + (ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2): + Likewise. + * elf/dl-iteratephdr.c (__dl_iterate_phdr): Use NULL rather than 0 for __libc_cleanup_push argument. -2012-08-17 Roland McGrath <roland@hack.frob.com> - * bits/param.h: New file. * misc/sys/param.h: New file. * include/sys/param.h: New file. diff --git a/malloc/arena.c b/malloc/arena.c index 06bdd77d23..9e5e332020 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -141,6 +141,8 @@ int __malloc_initialized = -1; /**************************************************************************/ +#ifndef NO_THREADS + /* atfork support. */ static __malloc_ptr_t (*save_malloc_hook) (size_t __size, @@ -276,7 +278,7 @@ ptmalloc_unlock_all (void) (void)mutex_unlock(&list_lock); } -#ifdef __linux__ +# ifdef __linux__ /* In NPTL, unlocking a mutex in the child process after a fork() is currently unsafe, whereas re-initializing it is safe and @@ -311,11 +313,13 @@ ptmalloc_unlock_all2 (void) atfork_recursive_cntr = 0; } -#else +# else -#define ptmalloc_unlock_all2 ptmalloc_unlock_all +# define ptmalloc_unlock_all2 ptmalloc_unlock_all -#endif +# endif + +#endif /* !NO_THREADS */ /* Initialization routine. */ #include <string.h> diff --git a/malloc/malloc.c b/malloc/malloc.c index 373e063fc3..0f1796c913 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1075,9 +1075,10 @@ static void* realloc_check(void* oldmem, size_t bytes, const void *caller); static void* memalign_check(size_t alignment, size_t bytes, const void *caller); -/* These routines are never needed in this configuration. */ +#ifndef NO_THREADS static void* malloc_atfork(size_t sz, const void *caller); static void free_atfork(void* mem, const void *caller); +#endif /* ------------- Optional versions of memcopy ---------------- */ diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/generic/malloc-machine.h index 03e9de5fd8..851978a4de 100644 --- a/sysdeps/generic/malloc-machine.h +++ b/sysdeps/generic/malloc-machine.h @@ -1,6 +1,6 @@ /* Basic platform-independent macro definitions for mutexes, thread-specific data and parameters for malloc. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,10 +34,11 @@ be based on atomic test-and-set operations, for example. */ typedef int mutex_t; -# define mutex_init(m) (*(m) = 0) -# define mutex_lock(m) ((*(m) = 1), 0) -# define mutex_trylock(m) (*(m) ? 1 : ((*(m) = 1), 0)) -# define mutex_unlock(m) (*(m) = 0) +# define mutex_init(m) (*(m) = 0) +# define mutex_lock(m) ((*(m) = 1), 0) +# define mutex_trylock(m) (*(m) ? 1 : ((*(m) = 1), 0)) +# define mutex_unlock(m) (*(m) = 0) +# define MUTEX_INITIALIZER (0) typedef void *tsd_key_t; # define tsd_key_create(key, destr) do {} while(0) |