diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-07-06 04:26:42 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-07-06 04:26:42 +0000 |
commit | ce6e047fbb353e1d2faf15ab104a19db609b622b (patch) | |
tree | 3cf56ba767e54e26c5a7bfedc235728d457c9093 /elf/rtld.c | |
parent | 2dd18ce2b2dfecc737479548f5b6d1784d90fe79 (diff) | |
download | glibc-ce6e047fbb353e1d2faf15ab104a19db609b622b.tar glibc-ce6e047fbb353e1d2faf15ab104a19db609b622b.tar.gz glibc-ce6e047fbb353e1d2faf15ab104a19db609b622b.tar.bz2 glibc-ce6e047fbb353e1d2faf15ab104a19db609b622b.zip |
Update.
2004-07-05 Ulrich Drepper <drepper@redhat.com>
* elf/dl-init.c: Don't define and use _dl_starting_up if
HAVE_INLINED_SYSCALLS is defined and the variable is not used.
* elf/dl-support.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-misc.c (_dl_debug_vdprintf): Use writev syscall directly
if HAVE_INLINED_SYSCALLS is defined.
* sysdeps/powerpc/powerpc64/dl-machine.h: Don't rest _dl_starting_up
here.
* sysdeps/powerpc/powerpc32/dl-start.S: Likewise.
* sysdeps/unix/sysv/linux/configure.in: Define HAVE_INLINED_SYSCALLS.
* config.h.in: Add entry for HAVE_INLINED_SYSCALLS.
* sysdeps/posix/profil.c: If compiled for ld.so, omit code which
is needed to stop profiling.
* elf/dl-open.c (dl_open_worker): If a newly opened object is to be
profile make sure it cannot be unloaded.
* sysdeps/unix/sysv/linux/dl-origin.c: Inline readlink syscall.
* sysdeps/unix/sysv/linux/fcntl.c: If compiled without cancellation
support, make sure the helper function is inlined.
* sysdeps/unix/sysv/linux/pread.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Likewise.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r-- | elf/rtld.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/elf/rtld.c b/elf/rtld.c index 2e7a9b6867..3def0306e2 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -79,6 +79,7 @@ INTDEF(_dl_argv) /* Nonzero if we were run directly. */ unsigned int _dl_skip_args attribute_relro attribute_hidden; +#ifndef HAVE_INLINED_SYSCALLS /* Set nonzero during loading and initialization of executable and libraries, cleared before the executable's entry point runs. This must not be initialized to nonzero, because the unused dynamic @@ -88,6 +89,7 @@ unsigned int _dl_skip_args attribute_relro attribute_hidden; never be called. */ int _dl_starting_up = 0; INTVARDEF(_dl_starting_up) +#endif /* This is the structure which defines all variables global to ld.so (except those which cannot be added for some reason). */ @@ -720,8 +722,10 @@ dl_main (const ElfW(Phdr) *phdr, /* Process the environment variable which control the behaviour. */ process_envvars (&mode); +#ifndef HAVE_INLINED_SYSCALLS /* Set up a flag which tells we are just starting. */ INTUSE(_dl_starting_up) = 1; +#endif if (*user_entry == (ElfW(Addr)) ENTRY_POINT) { |