diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-07-26 00:27:15 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-07-26 00:27:15 +0000 |
commit | 370f00c3a7bfaa50b091a8cbf049c5d3c92639ab (patch) | |
tree | b72cf5ea4172145b97d7cd2de38e026e4dda0fa1 /elf | |
parent | ca13ce66be1bb4d218c89b1680e7aa177a3275cd (diff) | |
download | glibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.tar glibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.tar.gz glibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.tar.bz2 glibc-370f00c3a7bfaa50b091a8cbf049c5d3c92639ab.zip |
Update.
2001-06-07 David Mosberger <davidm@hpl.hp.com>
* sysdeps/ia64/dl-symaddr.c (_dl_symbol_address): Update call to
__ia64_make_fptr() for new interface.
(_dl_function_address): Remove.
* sysdeps/ia64/dl-machine.h (IA64_BOOT_FPTR_TABLE_LEN): Rename
from IA64_BOOT_FPTR_SIZE and reduce its value from 256 to 200.
(struct ia64_fdesc): Rename from struct ia64_fptr and drop "next"
pointer. Rename member "func" to "ip".
(struct ia64_fdesc_table): New type.
(__ia64_make_fptr): Change prototype.
(__ia64_init_bootstrap_fdesc_table): New function.
(ELF_MACHINE_BEFORE_RTLD_RELOC): New macro.
(__boot_ldso_fptr): Removed.
(__fptr_next): Removed.
(__fptr_root): Removed.
(__fptr_count): Removed.
(TRAMPOLINE_TEMPLATE): Fix typo in comment. Don't use multi-line
strings to avoid warning from gcc3.
(RTLD_START): Don't use multi-line strings.
(ELF_MACHINE_START_ADDRESS): Use DL_STATIC_FUNCTION_ADDRESS.
(elf_machine_fixup_plt): Update the code entry point in the
function descriptor through a "volatile" pointer to ensure proper
write ordering.
(elf_machine_rela): Simplify handling of FPTR relocs: always call
__ia64_make_fptr().
* sysdeps/ia64/dl-lookupcfg.h (DL_AUTO_FUNCTION_ADDRESS): New macro.
(DL_STATIC_FUNCTION_ADDRESS): Likewise.
(DL_DT_INIT_ADDRESS): Use DL_AUTO_FUNCTION_ADDRESS.
(DL_DT_FINI_ADDRESS): Likewise.
* sysdeps/ia64/dl-fptr.c: Rewrite for better scalability and to
avoid deadlocks.
* include/link.h: Add member machine specific "l_mach" member to
link_map.
* sysdeps/generic/bits/link.h: New file.
* sysdeps/ia64/bits/link.h: Likewise.
* elf/rtld.c (_dl_start): Fix typo in comment.
(_dl_start_final): Copy new "l_mach" member from temporary to
final bootstrap map.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/rtld.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/elf/rtld.c b/elf/rtld.c index 45b29c679d..36dbc6f94c 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -157,7 +157,7 @@ _dl_start (void *arg) HP_TIMING_NOW (start_time); /* Partly clean the `bootstrap_map' structure up. Don't use `memset' - since it might nor be built in or inlined and we cannot make function + since it might not be built in or inlined and we cannot make function calls at this point. */ for (cnt = 0; cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]); @@ -228,6 +228,7 @@ _dl_start_final (void *arg, struct link_map *bootstrap_map_p, memcpy (_dl_rtld_map.l_info, bootstrap_map_p->l_info, sizeof _dl_rtld_map.l_info); _dl_setup_hash (&_dl_rtld_map); + _dl_rtld_map.l_mach = bootstrap_map_p->l_mach; /* Don't bother trying to work out how ld.so is mapped in memory. */ _dl_rtld_map.l_map_start = ~0; |