This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] malloc: Remove NO_THREADS
- From: Florian Weimer <fweimer at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 10 Feb 2016 22:42:20 +0100
- Subject: [PATCH] malloc: Remove NO_THREADS
- Authentication-results: sourceware.org; auth=none
No functional change. It was not possible to build without threading
support before.
Florian
2016-02-10 Florian Weimer <fweimer@redhat.com>
* sysdeps/generic/malloc-machine.h: Assume mutex_init is always
available. Do not define NO_THREADS.
* malloc/malloc.c: Do not check NO_THREADS.
* malloc/arena.c: Likewise.
diff --git a/malloc/arena.c b/malloc/arena.c
index 54cf086..cd26cdd 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -127,8 +127,6 @@ int __malloc_initialized = -1;
/**************************************************************************/
-#ifndef NO_THREADS
-
/* atfork support. */
static void *(*save_malloc_hook)(size_t __size, const void *);
@@ -327,7 +325,6 @@ ptmalloc_unlock_all2 (void)
# define ptmalloc_unlock_all2 ptmalloc_unlock_all
# endif
-#endif /* !NO_THREADS */
/* Initialization routine. */
#include <string.h>
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 1038df4..b8a43bf 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -1073,10 +1073,8 @@ 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);
-#ifndef NO_THREADS
static void* malloc_atfork(size_t sz, const void *caller);
static void free_atfork(void* mem, const void *caller);
-#endif
/* ------------------ MMAP support ------------------ */
diff --git a/sysdeps/generic/malloc-machine.h b/sysdeps/generic/malloc-machine.h
index 1ed2d50..71b95c2 100644
--- a/sysdeps/generic/malloc-machine.h
+++ b/sysdeps/generic/malloc-machine.h
@@ -22,25 +22,6 @@
#include <atomic.h>
-#ifndef mutex_init /* No threads, provide dummy macros */
-
-# define NO_THREADS
-
-/* The mutex functions used to do absolutely nothing, i.e. lock,
- trylock and unlock would always just return 0. However, even
- without any concurrently active threads, a mutex can be used
- legitimately as an `in use' flag. To make the code that is
- protected by a mutex async-signal safe, these macros would have to
- 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)
-
-#endif /* !defined mutex_init */
-
#ifndef atomic_full_barrier
# define atomic_full_barrier() __asm ("" ::: "memory")
#endif