* sysdeps/unix/sysv/linux/init-first.c (init): Remove [! SHARED]

conditional from __libc_multiple_libcs access.  Remove kludge for weak
	symbol access with old compilers we no longer support.
	* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
	* sysdeps/generic/libc-start.c (__libc_start_main): Likewise.

2002-10-24  Roland McGrath  <roland@redhat.com>

	* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
	`_dl_tls_static_used'.
	(TLS_STATIC_MIN): New macro.
	* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
	(__libc_setup_tls): Initialize it.
	* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Likewise.
	* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
	(CHECK_STATIC_TLS): Use it.
	* elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the
	closed objects occupied a trailing contiguous chunk of static TLS area.

2002-10-25  Roland McGrath  <roland@redhat.com>
This commit is contained in:
Roland McGrath 2002-10-25 19:41:31 +00:00
parent c61ce8de62
commit 5580f1544d
4 changed files with 24 additions and 19 deletions

View File

@ -1,3 +1,24 @@
2002-10-25 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/init-first.c (init): Remove [! SHARED]
conditional from __libc_multiple_libcs access. Remove kludge for weak
symbol access with old compilers we no longer support.
* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
* sysdeps/generic/libc-start.c (__libc_start_main): Likewise.
2002-10-24 Roland McGrath <roland@redhat.com>
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
(__libc_setup_tls): Initialize it.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Likewise.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
* elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the
closed objects occupied a trailing contiguous chunk of static TLS area.
2002-10-25 Roland McGrath <roland@redhat.com>
* sysdeps/posix/sigvec.c [SA_RESETHAND]: Disable wrapper hacks and

View File

@ -64,13 +64,7 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **),
/* Result of the 'main' function. */
int result;
#ifndef SHARED
# ifdef HAVE_AUX_VECTOR
void *__unbounded *__unbounded auxvec;
# endif
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
#endif
INIT_ARGV_and_ENVIRON;
@ -79,6 +73,7 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **),
#ifndef SHARED
# ifdef HAVE_AUX_VECTOR
void *__unbounded *__unbounded auxvec;
/* First process the auxiliary vector since we need to find the
program header to locate an eventually present PT_TLS entry. */
for (auxvec = (void *__unbounded *__unbounded) ubp_ev;

View File

@ -57,12 +57,8 @@ init (int argc, char **argv, char **envp)
If the address would be taken inside the expression the optimizer
would try to be too smart and throws it away. Grrr. */
#ifndef SHARED
/* XXX disable dl for now
int *dummy_addr = &_dl_starting_up;
__libc_multiple_libcs = dummy_addr && !_dl_starting_up; */
#endif
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; */
/* Save the command-line arguments. */
__libc_argc = argc;

View File

@ -52,14 +52,7 @@ init (int argc, char **argv, char **envp)
extern void __getopt_clean_environment (char **);
#endif
#ifndef SHARED
/* The next variable is only here to work around a bug in gcc <= 2.7.2.2.
If the address would be taken inside the expression the optimizer
would try to be too smart and throws it away. Grrr. */
int *dummy_addr = &_dl_starting_up;
__libc_multiple_libcs = dummy_addr && !_dl_starting_up;
#endif
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
/* Make sure we don't initialize twice. */
if (!__libc_multiple_libcs)