diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-09-26 16:53:25 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-09-26 16:53:44 -0700 |
commit | 825adeeed1e95990fd1efb70d9ac3eb7f1ea802a (patch) | |
tree | 4002af56c7bd48974db937cdc3fbe7c2d7ecc290 /dlfcn | |
parent | bfb0deb3554204cbba10d61d96cad355e4ca5623 (diff) | |
download | glibc-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 'dlfcn')
-rw-r--r-- | dlfcn/modatexit.c | 2 | ||||
-rw-r--r-- | dlfcn/modcxaatexit.c | 2 | ||||
-rw-r--r-- | dlfcn/tstatexit.c | 8 | ||||
-rw-r--r-- | dlfcn/tstcxaatexit.c | 8 |
4 files changed, 1 insertions, 19 deletions
diff --git a/dlfcn/modatexit.c b/dlfcn/modatexit.c index e620d10c70..95c18dcbac 100644 --- a/dlfcn/modatexit.c +++ b/dlfcn/modatexit.c @@ -35,9 +35,7 @@ dummy (void) void foo (void *p) { - extern void *__dso_handle __attribute__ ((__weak__)); printf ("This is %s\n", __FUNCTION__); atexit (dummy); - if (&__dso_handle) puts ("have dso handle"); else puts ("no dso handle"); ip = p; } diff --git a/dlfcn/modcxaatexit.c b/dlfcn/modcxaatexit.c index fbda2f3c9f..917a97d813 100644 --- a/dlfcn/modcxaatexit.c +++ b/dlfcn/modcxaatexit.c @@ -17,6 +17,7 @@ #include <stdio.h> #include <stdlib.h> +#include <dso_handle.h> extern void fluffy (void *p); extern void bar (void *p); @@ -34,7 +35,6 @@ fluffy (void *p) void bar (void *p) { - extern void *__dso_handle; printf ("This is %s\n", __FUNCTION__); __cxa_atexit (fluffy, p, __dso_handle); } diff --git a/dlfcn/tstatexit.c b/dlfcn/tstatexit.c index 2073843b8f..e25a3f8000 100644 --- a/dlfcn/tstatexit.c +++ b/dlfcn/tstatexit.c @@ -20,8 +20,6 @@ #include <stdlib.h> -extern void *__dso_handle __attribute__ ((__weak__)); - int main (void) { @@ -30,12 +28,6 @@ main (void) void (*fp) (void *); int v = 0; - if (&__dso_handle == NULL) - { - puts ("__dso_handle not available, cannot perform the test"); - exit (0); - } - h = dlopen (fname, RTLD_NOW); if (h == NULL) { diff --git a/dlfcn/tstcxaatexit.c b/dlfcn/tstcxaatexit.c index fde645c16b..37f25d63d4 100644 --- a/dlfcn/tstcxaatexit.c +++ b/dlfcn/tstcxaatexit.c @@ -19,8 +19,6 @@ #include <stdio.h> #include <stdlib.h> -extern void *__dso_handle __attribute__ ((__weak__)); - int main (void) { @@ -29,12 +27,6 @@ main (void) void (*fp) (void *); int v = 0; - if (&__dso_handle == NULL) - { - puts ("__dso_handle not available, cannot perform the test"); - exit (0); - } - h = dlopen (fname, RTLD_LAZY); if (h == NULL) { |