diff options
author | Roland McGrath <roland@gnu.org> | 2002-10-25 19:41:31 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-10-25 19:41:31 +0000 |
commit | 5580f1544d434997f1ddfbb4785a7a447f75e605 (patch) | |
tree | c9b69703fc3b6c2f88347ed33ce727a9a130a917 | |
parent | c61ce8de6245e1e2a27f3b574c8ca047a009ec2e (diff) | |
download | glibc-5580f1544d434997f1ddfbb4785a7a447f75e605.tar.gz glibc-5580f1544d434997f1ddfbb4785a7a447f75e605.tar.xz glibc-5580f1544d434997f1ddfbb4785a7a447f75e605.zip |
* 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>
-rw-r--r-- | ChangeLog | 21 | ||||
-rw-r--r-- | sysdeps/generic/libc-start.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/aix/init-first.c | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/init-first.c | 9 |
4 files changed, 24 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog index 1394bab473..b75b5ef964 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,26 @@ 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 implement SV_RESETHAND by translating it to SA_RESETHAND. diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c index 806ed789cc..ef02b1819f 100644 --- a/sysdeps/generic/libc-start.c +++ b/sysdeps/generic/libc-start.c @@ -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; diff --git a/sysdeps/unix/sysv/aix/init-first.c b/sysdeps/unix/sysv/aix/init-first.c index 8272a62824..24ef109dd2 100644 --- a/sysdeps/unix/sysv/aix/init-first.c +++ b/sysdeps/unix/sysv/aix/init-first.c @@ -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; diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c index a2905f9392..65e275cfe1 100644 --- a/sysdeps/unix/sysv/linux/init-first.c +++ b/sysdeps/unix/sysv/linux/init-first.c @@ -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) |