cc [flag . . . ] file . . . -lelf [library] . . .#include <libelf.h>
unsigned long elf_hash(const char name);
Hash tables may be built on one machine and used on another
because elf_hash uses unsigned arithmetic to avoid possible
differences in various machines' signed arithmetic.
Although
name
is shown as char
above,
elf_hash
treats it as unsigned char
to avoid
sign extension differences.
Using char
eliminates type conflicts with
expressions such as elf_hash("name")
.
ELF files' symbol hash tables are computed using this function [see elf_getdata(ELF) and elf_xlate(ELF)]. The hash value returned is guaranteed not to be the bit pattern of all ones (~0UL).