dynamic linker 64bit fix: hash table entries are always 32bit

This commit is contained in:
Rich Felker 2011-06-18 22:52:01 -04:00
commit 596d60c565

View file

@ -35,7 +35,7 @@ struct dso
int refcnt; int refcnt;
size_t *dynv; size_t *dynv;
Sym *syms; Sym *syms;
size_t *hashtab; uint32_t *hashtab;
char *strings; char *strings;
unsigned char *base; unsigned char *base;
unsigned char *map; unsigned char *map;
@ -71,7 +71,7 @@ static uint32_t hash(const char *s)
return h & 0xfffffff; return h & 0xfffffff;
} }
static Sym *lookup(const char *s, uint32_t h, Sym *syms, size_t *hashtab, char *strings) static Sym *lookup(const char *s, uint32_t h, Sym *syms, uint32_t *hashtab, char *strings)
{ {
size_t i; size_t i;
for (i=hashtab[2+h%hashtab[0]]; i; i=hashtab[2+hashtab[0]+i]) { for (i=hashtab[2+h%hashtab[0]]; i; i=hashtab[2+hashtab[0]+i]) {