mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
* 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:
21
ChangeLog
21
ChangeLog
@@ -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>
|
2002-10-25 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
* sysdeps/posix/sigvec.c [SA_RESETHAND]: Disable wrapper hacks and
|
* sysdeps/posix/sigvec.c [SA_RESETHAND]: Disable wrapper hacks and
|
||||||
|
@@ -64,13 +64,7 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **),
|
|||||||
/* Result of the 'main' function. */
|
/* Result of the 'main' function. */
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
#ifndef SHARED
|
|
||||||
# ifdef HAVE_AUX_VECTOR
|
|
||||||
void *__unbounded *__unbounded auxvec;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
|
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
|
||||||
#endif
|
|
||||||
|
|
||||||
INIT_ARGV_and_ENVIRON;
|
INIT_ARGV_and_ENVIRON;
|
||||||
|
|
||||||
@@ -79,6 +73,7 @@ BP_SYM (__libc_start_main) (int (*main) (int, char **, char **),
|
|||||||
|
|
||||||
#ifndef SHARED
|
#ifndef SHARED
|
||||||
# ifdef HAVE_AUX_VECTOR
|
# ifdef HAVE_AUX_VECTOR
|
||||||
|
void *__unbounded *__unbounded auxvec;
|
||||||
/* First process the auxiliary vector since we need to find the
|
/* First process the auxiliary vector since we need to find the
|
||||||
program header to locate an eventually present PT_TLS entry. */
|
program header to locate an eventually present PT_TLS entry. */
|
||||||
for (auxvec = (void *__unbounded *__unbounded) ubp_ev;
|
for (auxvec = (void *__unbounded *__unbounded) ubp_ev;
|
||||||
|
@@ -57,12 +57,8 @@ init (int argc, char **argv, char **envp)
|
|||||||
If the address would be taken inside the expression the optimizer
|
If the address would be taken inside the expression the optimizer
|
||||||
would try to be too smart and throws it away. Grrr. */
|
would try to be too smart and throws it away. Grrr. */
|
||||||
|
|
||||||
#ifndef SHARED
|
|
||||||
/* XXX disable dl for now
|
/* XXX disable dl for now
|
||||||
int *dummy_addr = &_dl_starting_up;
|
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; */
|
||||||
|
|
||||||
__libc_multiple_libcs = dummy_addr && !_dl_starting_up; */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Save the command-line arguments. */
|
/* Save the command-line arguments. */
|
||||||
__libc_argc = argc;
|
__libc_argc = argc;
|
||||||
|
@@ -52,14 +52,7 @@ init (int argc, char **argv, char **envp)
|
|||||||
extern void __getopt_clean_environment (char **);
|
extern void __getopt_clean_environment (char **);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHARED
|
__libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
|
||||||
/* 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
|
|
||||||
|
|
||||||
/* Make sure we don't initialize twice. */
|
/* Make sure we don't initialize twice. */
|
||||||
if (!__libc_multiple_libcs)
|
if (!__libc_multiple_libcs)
|
||||||
|
Reference in New Issue
Block a user