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.
This commit is contained in:
H.J. Lu 2017-08-21 05:32:21 -07:00
parent 1dbbb1ec7a
commit 54e4b8f215
6 changed files with 17 additions and 8 deletions

View File

@ -1,3 +1,15 @@
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]

View File

@ -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>

View File

@ -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. */

View File

@ -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>

View File

@ -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 */

View File

@ -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. */