Home | History | Annotate | Download | only in ld.elf_so

Lines Matching refs:hash

60 #include "hash.h"
85 _rtld_symlook_list(const char *name, Elf_Hash *hash, const Objlist *objlist,
101 symp = _rtld_symlook_obj(name, hash, elm->obj, flags, ventry);
123 _rtld_symlook_needed(const char *name, Elf_Hash *hash,
138 def = _rtld_symlook_obj(name, hash, obj, flags, ventry);
157 def_w = _rtld_symlook_needed(name, hash, obj->needed, &defobj1,
264 if (obj->vertab[verndx].hash != ventry->hash ||
292 * SysV Hash version.
295 _rtld_symlook_obj_sysv(const char *name, unsigned long hash,
302 for (symnum = obj->buckets[fast_remainder32(hash, obj->nbuckets,
323 * GNU Hash version.
326 _rtld_symlook_obj_gnu(const char *name, unsigned long hash,
338 bloom_word = obj->bloom_gnu[(hash / ELFSIZE) & obj->mask_bm_gnu];
340 /* Calculate modulus word size of gnu hash and its derivative */
341 h1 = hash & (ELFSIZE - 1);
342 h2 = ((hash >> obj->shift2_gnu) & (ELFSIZE - 1));
348 /* Locate hash chain and corresponding value element*/
349 bucket = obj->buckets_gnu[fast_remainder32(hash, obj->nbuckets_gnu,
356 if (((*hashval ^ hash) >> 1) == 0) {
375 * The symbol's hash value is passed in for efficiency reasons; that
376 * eliminates many recomputations of the hash value.
378 * Redirect to either GNU Hash (whenever available) or ELF Hash.
381 _rtld_symlook_obj(const char *name, Elf_Hash *hash,
387 /* Always prefer the GNU Hash as it is faster. */
389 return _rtld_symlook_obj_gnu(name, hash->gnu, obj, flags, ventry);
391 return _rtld_symlook_obj_sysv(name, hash->sysv, obj, flags, ventry);
408 Elf_Hash hash;
424 hash.sysv = _rtld_sysv_hash(name);
425 hash.gnu = _rtld_gnu_hash(name);
427 def = _rtld_symlook_default(name, &hash, refobj, &defobj, flags,
489 _rtld_symlook_default(const char *name, Elf_Hash *hash,
507 symp = _rtld_symlook_obj(name, hash, refobj, flags, ventry);
517 symp = _rtld_symlook_list(name, hash, &_rtld_list_main, &obj,
529 symp = _rtld_symlook_list(name, hash, &_rtld_list_global,
544 symp = _rtld_symlook_list(name, hash, &elm->obj->dagmembers,
561 symp = _rtld_symlook_obj(name, hash, refobj, flags, ventry);
575 symp = _rtld_symlook_obj(name, hash, &_rtld_objself, flags,