diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/mach/hurd/malloc-machine.h | 8 | ||||
-rw-r--r-- | sysdeps/nptl/malloc-machine.h | 27 |
3 files changed, 7 insertions, 35 deletions
@@ -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) */ |