diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-05-19 17:17:58 -0500 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-05-23 10:38:40 -0500 |
commit | c4bd509d477373b79b2becb625634d3441193005 (patch) | |
tree | 83a15359aabb527cec8db6de52ccbf471dfde734 /elf/dl-lookup.c | |
parent | 93ec1cf0fef422b137be7a99fdcdf007c318c71d (diff) | |
download | glibc-c4bd509d477373b79b2becb625634d3441193005.tar.gz glibc-c4bd509d477373b79b2becb625634d3441193005.tar.xz glibc-c4bd509d477373b79b2becb625634d3441193005.zip |
elf: Refactor dl_new_hash so it can be tested / benchmarked
No change to the code other than moving the function to dl-new-hash.h. Changed name so its now in the reserved namespace. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r-- | elf/dl-lookup.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index 989b073e4f..a42f6d5390 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -24,6 +24,7 @@ #include <ldsodefs.h> #include <dl-hash.h> #include <dl-machine.h> +#include <dl-new-hash.h> #include <dl-protected.h> #include <sysdep-cancel.h> #include <libc-lock.h> @@ -558,16 +559,6 @@ skip: } -static uint32_t -dl_new_hash (const char *s) -{ - uint32_t h = 5381; - for (unsigned char c = *s; c != '\0'; c = *++s) - h = h * 33 + c; - return h; -} - - /* Add extra dependency on MAP to UNDEF_MAP. */ static int add_dependency (struct link_map *undef_map, struct link_map *map, int flags) @@ -816,7 +807,7 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map, const struct r_found_version *version, int type_class, int flags, struct link_map *skip_map) { - const unsigned int new_hash = dl_new_hash (undef_name); + const unsigned int new_hash = _dl_new_hash (undef_name); unsigned long int old_hash = 0xffffffff; struct sym_val current_value = { NULL, NULL }; struct r_scope_elem **scope = symbol_scope; |