aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/mach/hurd/malloc-machine.h8
-rw-r--r--sysdeps/nptl/malloc-machine.h27
3 files changed, 7 insertions, 35 deletions
diff --git a/ChangeLog b/ChangeLog
index e143af4..58ae227 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2016-04-14 Florian Weimer <fweimer@redhat.com>
+ * sysdeps/nptl/malloc-machine.h (ATFORK_MEM, __dso_handle)
+ (thread_atfork, thread_atfork_static): Remove.
+ * sysdeps/mach/hurd/malloc-machine.h:
+ (thread_atfork, thread_atfork_static): Remove.
+
+2016-04-14 Florian Weimer <fweimer@redhat.com>
+
[BZ #19431]
Run the malloc fork handler as late as possible to avoid deadlocks.
* malloc/malloc-internal.h: New file.
diff --git a/sysdeps/mach/hurd/malloc-machine.h b/sysdeps/mach/hurd/malloc-machine.h
index 515f3ff..f778b0d 100644
--- a/sysdeps/mach/hurd/malloc-machine.h
+++ b/sysdeps/mach/hurd/malloc-machine.h
@@ -20,8 +20,6 @@
#ifndef _MALLOC_MACHINE_H
#define _MALLOC_MACHINE_H
-#undef thread_atfork_static
-
#include <atomic.h>
#include <libc-lock.h>
@@ -43,12 +41,6 @@
#define mutex_trylock(m) (!__mutex_trylock(m))
-#define thread_atfork(prepare, parent, child) do {} while(0)
-#define thread_atfork_static(prepare, parent, child) \
- text_set_element(_hurd_fork_prepare_hook, prepare); \
- text_set_element(_hurd_fork_parent_hook, parent); \
- text_set_element(_hurd_fork_child_hook, child);
-
/* No we're *not* using pthreads. */
#define __pthread_initialize ((void (*)(void))0)
diff --git a/sysdeps/nptl/malloc-machine.h b/sysdeps/nptl/malloc-machine.h
index 5b276df..1a2af6f 100644
--- a/sysdeps/nptl/malloc-machine.h
+++ b/sysdeps/nptl/malloc-machine.h
@@ -20,8 +20,6 @@
#ifndef _MALLOC_MACHINE_H
#define _MALLOC_MACHINE_H
-#undef thread_atfork_static
-
#include <atomic.h>
#include <libc-lock.h>
@@ -32,31 +30,6 @@ __libc_lock_define (typedef, mutex_t)
#define mutex_trylock(m) __libc_lock_trylock (*(m))
#define mutex_unlock(m) __libc_lock_unlock (*(m))
-/* This is defined by newer gcc version unique for each module. */
-extern void *__dso_handle __attribute__ ((__weak__));
-
-#include <fork.h>
-
-#define ATFORK_MEM static struct fork_handler atfork_mem
-
-#ifdef SHARED
-# define thread_atfork(prepare, parent, child) \
- atfork_mem.prepare_handler = prepare; \
- atfork_mem.parent_handler = parent; \
- atfork_mem.child_handler = child; \
- atfork_mem.dso_handle = __dso_handle; \
- atfork_mem.refcntr = 1; \
- __linkin_atfork (&atfork_mem)
-#else
-# define thread_atfork(prepare, parent, child) \
- atfork_mem.prepare_handler = prepare; \
- atfork_mem.parent_handler = parent; \
- atfork_mem.child_handler = child; \
- atfork_mem.dso_handle = &__dso_handle == NULL ? NULL : __dso_handle; \
- atfork_mem.refcntr = 1; \
- __linkin_atfork (&atfork_mem)
-#endif
-
#include <sysdeps/generic/malloc-machine.h>
#endif /* !defined(_MALLOC_MACHINE_H) */