diff --git a/elf/cache.c b/elf/cache.c index f5f3ef8c4d..ecbea2a0d9 100644 --- a/elf/cache.c +++ b/elf/cache.c @@ -764,7 +764,7 @@ save_cache (const char *cache_name) /* Add one library to the cache. */ void add_to_cache (const char *path, const char *filename, const char *soname, - int flags, unsigned int isa_level, uint64_t hwcap, + int flags, unsigned int isa_level, struct glibc_hwcaps_subdirectory *hwcaps) { struct cache_entry *new_entry = xmalloc (sizeof (*new_entry)); @@ -782,22 +782,12 @@ add_to_cache (const char *path, const char *filename, const char *soname, new_entry->path = path_interned; new_entry->flags = flags; new_entry->isa_level = isa_level; - new_entry->hwcap = hwcap; + new_entry->hwcap = 0; new_entry->hwcaps = hwcaps; new_entry->bits_hwcap = 0; if (hwcaps != NULL) - { - assert (hwcap == 0); - hwcaps->used = true; - } - - /* Count the number of bits set in the masked value. */ - for (size_t i = 0; - (~((1ULL << i) - 1) & hwcap) != 0 && i < 8 * sizeof (hwcap); ++i) - if ((hwcap & (1ULL << i)) != 0) - ++new_entry->bits_hwcap; - + hwcaps->used = true; /* Keep the list sorted - search for right place to insert. */ struct cache_entry *ptr = entries; diff --git a/elf/ldconfig.c b/elf/ldconfig.c index 0d19d84773..e6c24e71a4 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -980,8 +980,7 @@ search_dir (const struct dir_entry *entry) } if (opt_build_cache) add_to_cache (entry->path, filename, dlib_ptr->soname, - dlib_ptr->flag, dlib_ptr->isa_level, 0, - entry->hwcaps); + dlib_ptr->flag, dlib_ptr->isa_level, entry->hwcaps); } /* Free all resources. */ diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h index 7cc898db61..24222b0f1b 100644 --- a/sysdeps/generic/ldconfig.h +++ b/sysdeps/generic/ldconfig.h @@ -70,7 +70,7 @@ const char *glibc_hwcaps_subdirectory_name extern void add_to_cache (const char *path, const char *filename, const char *soname, int flags, - unsigned int isa_level, uint64_t hwcap, + unsigned int isa_level, struct glibc_hwcaps_subdirectory *); extern void init_aux_cache (void);