From 825adeeed1e95990fd1efb70d9ac3eb7f1ea802a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 26 Sep 2017 16:53:25 -0700 Subject: Mark __dso_handle as hidden [BZ #18822] Since __dso_handle is always defined by either crtbegin.o from GCC or dso_handle.c, it should be marked as hidden and be passed directly. [BZ #18822] * dlfcn/modatexit.c (foo): Remove __dso_handle check. * dlfcn/modcxaatexit.c: Include . (__dso_handle): Remove declaration. * dlfcn/tstatexit.c (__dso_handle): Removed. (main): Don't check __dso_handle. * dlfcn/tstcxaatexit.c (__dso_handle): Removed. (main): Don't check __dso_handle. * include/dso_handle.h: New file. * malloc/mtrace.c: Include . (mtrace): Pass __dso_handle directly. * nptl/pthread_atfork.c: Include . (__dso_handle): Remove declaration. (__pthread_atfork): Pass __dso_handle directly. * nptl/tst-atfork2mod.c: Include . (__dso_handle): Removed. * posix/wordexp-test.c: Include . (__dso_handle): Remove declaration. (__app_register_atfork): Pass __dso_handle directly. * stdlib/at_quick_exit.c: Include . (__dso_handle): Remove declaration. (at_quick_exit): Pass __dso_handle directly. * stdlib/atexit.c: Include . (__dso_handle): Remove declaration. (atexit): Pass __dso_handle directly. * stdlib/tst-tls-atexit-lib.c: Include . (__dso_handle): Removed. --- nptl/pthread_atfork.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'nptl/pthread_atfork.c') diff --git a/nptl/pthread_atfork.c b/nptl/pthread_atfork.c index dc2ea07887..f1aa2b3cf1 100644 --- a/nptl/pthread_atfork.c +++ b/nptl/pthread_atfork.c @@ -35,10 +35,7 @@ #include "pthreadP.h" #include - -/* This is defined by newer gcc version unique for each module. */ -extern void *__dso_handle __attribute__ ((__weak__, - __visibility__ ("hidden"))); +#include /* Hide the symbol so that no definition but the one locally in the @@ -51,8 +48,7 @@ attribute_hidden __pthread_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void)) { - return __register_atfork (prepare, parent, child, - &__dso_handle == NULL ? NULL : __dso_handle); + return __register_atfork (prepare, parent, child, __dso_handle); } #ifndef __pthread_atfork extern int pthread_atfork (void (*prepare) (void), void (*parent) (void), -- cgit v1.2.3