summaryrefslogtreecommitdiff
path: root/elf/dl-lookup.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-12 01:54:21 +0000
committerRoland McGrath <roland@gnu.org>1996-06-12 01:54:21 +0000
commit8d6468d0c8aa55b319ba70a83d3b092c292ef0b1 (patch)
treea1365de43a753ca0fbd6aeddb2adf1260816f31c /elf/dl-lookup.c
parent6e86a7c21b25f271304238a0cff0dd638343a5c2 (diff)
Tue Jun 11 19:13:04 1996 Richard Henderson <rth@tamu.edu>
* elf/dl-close.c: Include <string.h> for memcpy. * elf/dl-lookup.c: Same. * elf/elf.h: Add Elfxx_Symndx for symbol indices. * elf/dl-lookup.c (_dl_lookup_symbol): Use it. (_dl_setup_hash): Use it. * elf/link.h (struct link_map): Use it. * elf/rtld.c (_dl_start): Don't rely on pointer-to-first-arg hack for getting the argc/argv/envp block. Instead, make it the argument. sysdeps/i386/dl-machine.h (RTLD_START): Do that. sysdeps/m68k/dl-machine.h (RTLD_START): Same. * shlib-versions: Add version numbers for alpha-linux. To avoid user confusion, make them the same as i386-linux. * sysdeps/alpha/Makefile [subdir elf]: Add -mno-fp-regs to sysdep-CFLAGS so that _dl_runtime_resolve doesn't have to save them. Add -mbuild-constants to CFLAGS-rtld.c to that we can bootstrap without using literal data. * sysdeps/generic/dl-sysdep.c: Include <string.h> for memcpy. Finish Elf32 -> ElfW migration.
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r--elf/dl-lookup.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 5f1e6d03d9..bbccbc01ef 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */
#include <stddef.h>
#include <link.h>
#include <assert.h>
+#include <string.h>
/* This is the hashing function specified by the ELF ABI. */
@@ -70,7 +71,7 @@ _dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
{
const ElfW(Sym) *symtab;
const char *strtab;
- ElfW(Word) symidx;
+ ElfW(Symndx) symidx;
map = (*scope)->l_searchlist[i];
@@ -149,8 +150,8 @@ _dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
void
_dl_setup_hash (struct link_map *map)
{
- ElfW(Word) *hash = (void *) map->l_addr + map->l_info[DT_HASH]->d_un.d_ptr;
- ElfW(Word) nchain;
+ ElfW(Symndx) *hash = (void *)(map->l_addr + map->l_info[DT_HASH]->d_un.d_ptr);
+ ElfW(Symndx) nchain;
map->l_nbuckets = *hash++;
nchain = *hash++;
map->l_buckets = hash;