about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-08-21 05:32:21 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-08-21 05:32:39 -0700
commit54e4b8f21590d57ec9a2f2ad81a17c57e3b3984f (patch)
tree59e75443b45d8ad88b3a47fa52a23e0e22050899
parent1dbbb1ec7af9026bbdc6dd265525de0c3958406c (diff)
downloadglibc-54e4b8f21590d57ec9a2f2ad81a17c57e3b3984f.tar.gz
glibc-54e4b8f21590d57ec9a2f2ad81a17c57e3b3984f.tar.xz
glibc-54e4b8f21590d57ec9a2f2ad81a17c57e3b3984f.zip
Mark __libc_multiple_libcs with attribute_hidden [BZ #18822]
Since __libc_multiple_libcs is defined as hidden symbol in init-first.c,
it should be always marked with attribute_hidden.

	[BZ #18822]
	* csu/libc-start.c (__libc_multiple_libcs): Removed.
	* elf/dl-open.c: Include <libc-internal.h>.
	(__libc_multiple_libcs): Removed.
	* elf/dl-sysdep.c: Include <libc-internal.h> instead of
	<hp-timing.h>.
	* include/libc-internal.h (__libc_multiple_libcs): New.
	* misc/sbrk.c: Include <libc-internal.h>.
	(__libc_multiple_libcs): Removed.
-rw-r--r--ChangeLog12
-rw-r--r--csu/libc-start.c2
-rw-r--r--elf/dl-open.c3
-rw-r--r--elf/dl-sysdep.c2
-rw-r--r--include/libc-internal.h2
-rw-r--r--misc/sbrk.c4
6 files changed, 17 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 680f377986..4f34d4bff0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,18 @@
 2017-08-21  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* csu/libc-start.c (__libc_multiple_libcs): Removed.
+	* elf/dl-open.c: Include <libc-internal.h>.
+	(__libc_multiple_libcs): Removed.
+	* elf/dl-sysdep.c: Include <libc-internal.h> instead of
+	<hp-timing.h>.
+	* include/libc-internal.h (__libc_multiple_libcs): New.
+	* misc/sbrk.c: Include <libc-internal.h>.
+	(__libc_multiple_libcs): Removed.
+
+2017-08-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* grp/initgroups.c (__nss_group_database): Removed.
 	(__nss_initgroups_database): Likewise.
 	* nscd/gai.c (__nss_hosts_database): Likewise.
diff --git a/csu/libc-start.c b/csu/libc-start.c
index 6720617188..24c63be02f 100644
--- a/csu/libc-start.c
+++ b/csu/libc-start.c
@@ -27,8 +27,6 @@
 
 extern void __libc_init_first (int argc, char **argv, char **envp);
 
-extern int __libc_multiple_libcs;
-
 #include <tls.h>
 #ifndef SHARED
 # include <dl-osinfo.h>
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 2d8948aab1..c539f10cf3 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -33,12 +33,11 @@
 #include <tls.h>
 #include <stap-probe.h>
 #include <atomic.h>
+#include <libc-internal.h>
 
 #include <dl-dst.h>
 
 
-extern int __libc_multiple_libcs;	/* Defined in init-first.c.  */
-
 /* We must be careful not to leave us in an inconsistent state.  Thus we
    catch any error and re-raise it after cleaning up.  */
 
diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
index 4053ff3c07..c4ff8b2937 100644
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -41,7 +41,7 @@
 #include <dl-machine.h>
 #include <dl-procinfo.h>
 #include <dl-osinfo.h>
-#include <hp-timing.h>
+#include <libc-internal.h>
 #include <tls.h>
 
 #include <dl-tunables.h>
diff --git a/include/libc-internal.h b/include/libc-internal.h
index cd2f2622ed..c501c95eb5 100644
--- a/include/libc-internal.h
+++ b/include/libc-internal.h
@@ -53,4 +53,6 @@ extern void __init_misc (int, char **, char **);
 extern __typeof (__profile_frequency) __profile_frequency attribute_hidden;
 # endif
 
+extern int __libc_multiple_libcs attribute_hidden;
+
 #endif /* _LIBC_INTERNAL  */
diff --git a/misc/sbrk.c b/misc/sbrk.c
index 965c0ef879..158399d2ed 100644
--- a/misc/sbrk.c
+++ b/misc/sbrk.c
@@ -18,14 +18,12 @@
 #include <errno.h>
 #include <stdint.h>
 #include <unistd.h>
+#include <libc-internal.h>
 
 /* Defined in brk.c.  */
 extern void *__curbrk;
 extern int __brk (void *addr);
 
-/* Defined in init-first.c.  */
-extern int __libc_multiple_libcs attribute_hidden;
-
 /* Extend the process's data space by INCREMENT.
    If INCREMENT is negative, shrink data space by - INCREMENT.
    Return start of new space allocated, or -1 for errors.  */