aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-08-17 11:29:45 -0700
committerRoland McGrath <roland@hack.frob.com>2012-08-17 11:29:45 -0700
commit750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14 (patch)
tree2901a662169f86b152d62b3a67b157e89fd022c1
parent2ae1ae5cf441a90171ff483e3f0de6e8a9d611e4 (diff)
downloadglibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.tar
glibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.tar.gz
glibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.tar.bz2
glibc-750c1f2a9aefc7b3329283c1b0c95e1a0bb88f14.zip
Make malloc build for no-threads configurations.
-rw-r--r--ChangeLog11
-rw-r--r--malloc/arena.c12
-rw-r--r--malloc/malloc.c3
-rw-r--r--sysdeps/generic/malloc-machine.h11
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)