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 /sysdeps/powerpc/powerpc64 | |
parent | 2dd18ce2b2dfecc737479548f5b6d1784d90fe79 (diff) | |
download | glibc-ce6e047fbb353e1d2faf15ab104a19db609b622b.tar.gz glibc-ce6e047fbb353e1d2faf15ab104a19db609b622b.tar.xz 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 'sysdeps/powerpc/powerpc64')
-rw-r--r-- | sysdeps/powerpc/powerpc64/dl-machine.h | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h index 3edbadf6a4..2a090ec96e 100644 --- a/sysdeps/powerpc/powerpc64/dl-machine.h +++ b/sysdeps/powerpc/powerpc64/dl-machine.h @@ -194,6 +194,15 @@ elf_machine_dynamic (void) strong_alias (_dl_runtime_resolve, _dl_profile_resolve); #endif +#ifdef HAVE_INLINED_SYSCALLS +/* We do not need _dl_starting_up. */ +# define DL_STARTING_UP_DEF +#else +# define DL_STARTING_UP_DEF \ +".LC__dl_starting_up:\n" \ +" .tc _dl_starting_up_internal[TC],_dl_starting_up_internal\n" +#endif + /* Initial entry point code for the dynamic linker. The C function `_dl_start' is the real entry point; its return value is the user @@ -239,17 +248,16 @@ elf_machine_dynamic (void) "_dl_start_user:\n" \ " .quad ._dl_start_user, .TOC.@tocbase, 0\n" \ " .previous\n" \ -" .section \".toc\",\"aw\"\n" \ -".LC__dl_starting_up:\n" \ -" .tc _dl_starting_up_internal[TC],_dl_starting_up_internal\n" \ -".LC__rtld_global:\n" \ -" .tc _rtld_global[TC],_rtld_global\n" \ -".LC__dl_argc:\n" \ -" .tc _dl_argc[TC],_dl_argc\n" \ -".LC__dl_argv:\n" \ -" .tc _dl_argv_internal[TC],_dl_argv_internal\n" \ -".LC__dl_fini:\n" \ -" .tc _dl_fini[TC],_dl_fini\n" \ +" .section \".toc\",\"aw\"\n" \ +DL_STARTING_UP_DEF \ +".LC__rtld_global:\n" \ +" .tc _rtld_global[TC],_rtld_global\n" \ +".LC__dl_argc:\n" \ +" .tc _dl_argc[TC],_dl_argc\n" \ +".LC__dl_argv:\n" \ +" .tc _dl_argv_internal[TC],_dl_argv_internal\n" \ +".LC__dl_fini:\n" \ +" .tc _dl_fini[TC],_dl_fini\n" \ " .previous\n" \ " .globl ._dl_start_user\n" \ " .type ._dl_start_user,@function\n" \ @@ -291,8 +299,7 @@ elf_machine_dynamic (void) " addi 6,6,8\n" \ /* Pass a termination function pointer (in this case _dl_fini) in \ r7. */ \ -" ld 7,.LC__dl_fini@toc(2)\n" \ -" ld 26,.LC__dl_starting_up@toc(2)\n" \ +" ld 7,.LC__dl_fini@toc(2)\n" \ /* Pass the stack pointer in r1 (so far so good), pointing to a NULL \ value. This lets our startup code distinguish between a program \ linked statically, which linux will call with argc on top of the \ @@ -307,8 +314,6 @@ elf_machine_dynamic (void) " std 31,8(1)\n" \ " std 31,16(1)\n" \ " std 31,24(1)\n" \ -/* Clear _dl_starting_up. */ \ -" stw 31,0(26)\n" \ /* Now, call the start function descriptor at r30... */ \ " .globl ._dl_main_dispatch\n" \ "._dl_main_dispatch:\n" \ |