summary refs log tree commit diff
path: root/malloc
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-09-26 16:53:25 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-09-26 16:53:44 -0700
commit825adeeed1e95990fd1efb70d9ac3eb7f1ea802a (patch)
tree4002af56c7bd48974db937cdc3fbe7c2d7ecc290 /malloc
parentbfb0deb3554204cbba10d61d96cad355e4ca5623 (diff)
downloadglibc-825adeeed1e95990fd1efb70d9ac3eb7f1ea802a.tar.gz
glibc-825adeeed1e95990fd1efb70d9ac3eb7f1ea802a.tar.xz
glibc-825adeeed1e95990fd1efb70d9ac3eb7f1ea802a.zip
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.h>.
	(__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 <dso_handle.h>.
	(mtrace): Pass __dso_handle directly.
	* nptl/pthread_atfork.c: Include <dso_handle.h>.
	(__dso_handle): Remove declaration.
	(__pthread_atfork): Pass __dso_handle directly.
	* nptl/tst-atfork2mod.c: Include <dso_handle.h>.
	(__dso_handle): Removed.
	* posix/wordexp-test.c: Include <dso_handle.h>.
	(__dso_handle): Remove declaration.
	(__app_register_atfork): Pass __dso_handle directly.
	* stdlib/at_quick_exit.c: Include <dso_handle.h>.
	(__dso_handle): Remove declaration.
	(at_quick_exit): Pass __dso_handle directly.
	* stdlib/atexit.c: Include <dso_handle.h>.
	(__dso_handle): Remove declaration.
	(atexit): Pass __dso_handle directly.
	* stdlib/tst-tls-atexit-lib.c: Include <dso_handle.h>.
	(__dso_handle): Removed.
Diffstat (limited to 'malloc')
-rw-r--r--malloc/mtrace.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index 6c362d9679..9eb2f5f1c7 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -34,6 +34,7 @@
 #include <_itoa.h>
 
 #include <libc-internal.h>
+#include <dso_handle.h>
 
 #include <libio/iolibio.h>
 #define setvbuf(s, b, f, l) _IO_setvbuf (s, b, f, l)
@@ -315,10 +316,9 @@ mtrace (void)
 #ifdef _LIBC
           if (!added_atexit_handler)
             {
-              extern void *__dso_handle __attribute__ ((__weak__));
               added_atexit_handler = 1;
               __cxa_atexit ((void (*)(void *))release_libc_mem, NULL,
-                            &__dso_handle ? __dso_handle : NULL);
+			    __dso_handle);
             }
 #endif
         }