From 7ad3fdec85ef0b37d2ee1c69c5659d5ebe93f909 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 11 Sep 2016 23:56:38 +0200 Subject: Add dso_handle parameter to __register_atfork * forward.c (struct atfork): Add dso_handle field. (__register_atfork): Add dso_handle parameter. Store it it dso_handle field. * sysdeps/generic/pt-atfork.c (__dso_handle): New variable. (pthread_atfork): Pass address of __dso_handle to __register_atfork. --- sysdeps/generic/pt-atfork.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sysdeps') diff --git a/sysdeps/generic/pt-atfork.c b/sysdeps/generic/pt-atfork.c index ce72e10..304d7ef 100644 --- a/sysdeps/generic/pt-atfork.c +++ b/sysdeps/generic/pt-atfork.c @@ -20,10 +20,14 @@ #include #include +/* This is defined by newer gcc version unique for each module. */ +extern void *__dso_handle __attribute__ ((__weak__, + __visibility__ ("hidden"))); + int pthread_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void)) { - return __register_atfork (prepare, parent, child); + return __register_atfork (prepare, parent, child, &__dso_handle == NULL ? NULL : __dso_handle); } -- cgit v1.2.3