diff options
author | Roland McGrath <roland@gnu.org> | 2002-10-24 19:14:59 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-10-24 19:14:59 +0000 |
commit | 5bbcba0db58cef39ec4b582cd665ccb019dc6763 (patch) | |
tree | 5e18843757e510eddaef04aa3213bcb351681319 /sysdeps/generic | |
parent | 369b849f1a382df2c1ee5d3a997bf318950cf5ab (diff) | |
download | glibc-5bbcba0db58cef39ec4b582cd665ccb019dc6763.tar glibc-5bbcba0db58cef39ec4b582cd665ccb019dc6763.tar.gz glibc-5bbcba0db58cef39ec4b582cd665ccb019dc6763.tar.bz2 glibc-5bbcba0db58cef39ec4b582cd665ccb019dc6763.zip |
* elf/dl-misc.c: Include <sysdep.h>.
(_dl_debug_vdprintf): Only take dl_load_lock if not _dl_starting_up.
* sysdeps/generic/ldsodefs.h (_dl_starting_up): Declare it here.
* sysdeps/unix/sysv/linux/init-first.c: Not here.
* sysdeps/powerpc/elf/libc-start.c: Or here.
* sysdeps/unix/sysv/aix/libc-start.c: Or here.
* sysdeps/unix/sysv/aix/start-libc.c: Or here.
* sysdeps/unix/sysv/aix/init-first.c: Or here.
* sysdeps/generic/libc-start.c: Or here.
* sysdeps/unix/sysv/linux/init-first.c (init): Protect _dl_starting_up
access with [! SHARED].
* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 7 | ||||
-rw-r--r-- | sysdeps/generic/libc-start.c | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 36582a7463..a8f006122b 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -416,6 +416,13 @@ extern const char _dl_out_of_memory[]; extern const char _dl_out_of_memory_internal[] attribute_hidden; #endif +#ifndef SHARED +/* Flag set at startup and cleared when the last initializer has run. */ +extern int _dl_starting_up; +weak_extern (_dl_starting_up) +#elif defined IS_IN_rtld +extern int _dl_starting_up_internal attribute_hidden; +#endif /* OS-dependent function to open the zero-fill device. */ extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */ diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c index 3c7f2fa639..806ed789cc 100644 --- a/sysdeps/generic/libc-start.c +++ b/sysdeps/generic/libc-start.c @@ -24,8 +24,6 @@ extern void __libc_init_first (int argc, char **argv, char **envp); -extern int _dl_starting_up; -weak_extern (_dl_starting_up) extern int __libc_multiple_libcs; extern void *__libc_stack_end; |