This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26-406-g825adee


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  825adeeed1e95990fd1efb70d9ac3eb7f1ea802a (commit)
      from  bfb0deb3554204cbba10d61d96cad355e4ca5623 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=825adeeed1e95990fd1efb70d9ac3eb7f1ea802a

commit 825adeeed1e95990fd1efb70d9ac3eb7f1ea802a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Sep 26 16:53:25 2017 -0700

    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.

diff --git a/ChangeLog b/ChangeLog
index 91c7751..a731980 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2017-09-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[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.
+
 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/make-syscalls.sh: Use __ifunc to define symbols
diff --git a/dlfcn/modatexit.c b/dlfcn/modatexit.c
index e620d10..95c18dc 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 fbda2f3..917a97d 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 2073843..e25a3f8 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 fde645c..37f25d6 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)
     {
diff --git a/include/dso_handle.h b/include/dso_handle.h
new file mode 100644
index 0000000..d9c1ebb
--- /dev/null
+++ b/include/dso_handle.h
@@ -0,0 +1,3 @@
+/* __dso_handle is always defined by either crtbegin.o from GCC or our
+   dso_handle.c.  */
+extern void *__dso_handle __attribute__ ((__visibility__ ("hidden")));
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index 6c362d9..9eb2f5f 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
         }
diff --git a/nptl/pthread_atfork.c b/nptl/pthread_atfork.c
index dc2ea07..f1aa2b3 100644
--- a/nptl/pthread_atfork.c
+++ b/nptl/pthread_atfork.c
@@ -35,10 +35,7 @@
 
 #include "pthreadP.h"
 #include <fork.h>
-
-/* This is defined by newer gcc version unique for each module.  */
-extern void *__dso_handle __attribute__ ((__weak__,
-					  __visibility__ ("hidden")));
+#include <dso_handle.h>
 
 
 /* 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),
diff --git a/nptl/tst-atfork2mod.c b/nptl/tst-atfork2mod.c
index fe64046..ea47d58 100644
--- a/nptl/tst-atfork2mod.c
+++ b/nptl/tst-atfork2mod.c
@@ -19,6 +19,7 @@
 #include <pthread.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <dso_handle.h>
 
 
 extern int val;
@@ -46,7 +47,6 @@ static void
 __attribute__ ((constructor))
 init (void)
 {
-  extern void *__dso_handle;
   printf ("dsohandle = %p\n", __dso_handle);
 
   if (pthread_atfork (prepare, parent, child) != 0)
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
index 17ae812..c030a4d 100644
--- a/posix/wordexp-test.c
+++ b/posix/wordexp-test.c
@@ -27,16 +27,15 @@
 #include <string.h>
 #include <wordexp.h>
 #include <libc-pointer-arith.h>
+#include <dso_handle.h>
 
 #define IFS " \n\t"
 
-extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
 extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
 
 static int __app_register_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);
 }
 
 /* Number of forks seen.  */
diff --git a/stdlib/at_quick_exit.c b/stdlib/at_quick_exit.c
index 3b74d0a..0f1c1fd 100644
--- a/stdlib/at_quick_exit.c
+++ b/stdlib/at_quick_exit.c
@@ -33,18 +33,14 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <stdlib.h>
+#include <dso_handle.h>
 #include "exit.h"
 
 
-/* This is defined by newer gcc version unique for each module.  */
-extern void *__dso_handle __attribute__ ((__weak__));
-
-
 /* Register FUNC to be executed by `quick_exit'.  */
 int
 attribute_hidden
 at_quick_exit (void (*func) (void))
 {
-  return __cxa_at_quick_exit ((void (*) (void *)) func,
-			      &__dso_handle == NULL ? NULL : __dso_handle);
+  return __cxa_at_quick_exit ((void (*) (void *)) func, __dso_handle);
 }
diff --git a/stdlib/atexit.c b/stdlib/atexit.c
index f28b6ba..aaecb4a 100644
--- a/stdlib/atexit.c
+++ b/stdlib/atexit.c
@@ -33,13 +33,9 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <stdlib.h>
+#include <dso_handle.h>
 #include "exit.h"
 
-
-/* This is defined by newer gcc version unique for each module.  */
-extern void *__dso_handle __attribute__ ((__weak__));
-
-
 /* Register FUNC to be executed by `exit'.  */
 int
 #ifndef atexit
@@ -47,6 +43,5 @@ attribute_hidden
 #endif
 atexit (void (*func) (void))
 {
-  return __cxa_atexit ((void (*) (void *)) func, NULL,
-		       &__dso_handle == NULL ? NULL : __dso_handle);
+  return __cxa_atexit ((void (*) (void *)) func, NULL, __dso_handle);
 }
diff --git a/stdlib/tst-tls-atexit-lib.c b/stdlib/tst-tls-atexit-lib.c
index a227e46..06ec02f 100644
--- a/stdlib/tst-tls-atexit-lib.c
+++ b/stdlib/tst-tls-atexit-lib.c
@@ -17,8 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <stdlib.h>
-
-extern void *__dso_handle;
+#include <dso_handle.h>
 
 typedef struct
 {

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                   |   30 ++++++++++++++++++++++++++++++
 dlfcn/modatexit.c           |    2 --
 dlfcn/modcxaatexit.c        |    2 +-
 dlfcn/tstatexit.c           |    8 --------
 dlfcn/tstcxaatexit.c        |    8 --------
 include/dso_handle.h        |    3 +++
 malloc/mtrace.c             |    4 ++--
 nptl/pthread_atfork.c       |    8 ++------
 nptl/tst-atfork2mod.c       |    2 +-
 posix/wordexp-test.c        |    5 ++---
 stdlib/at_quick_exit.c      |    8 ++------
 stdlib/atexit.c             |    9 ++-------
 stdlib/tst-tls-atexit-lib.c |    3 +--
 13 files changed, 46 insertions(+), 46 deletions(-)
 create mode 100644 include/dso_handle.h


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]