aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elf/cache.c28
1 files changed, 6 insertions, 22 deletions
diff --git a/elf/cache.c b/elf/cache.c
index ecbea2a..10e61ae 100644
--- a/elf/cache.c
+++ b/elf/cache.c
@@ -145,10 +145,8 @@ struct cache_entry
struct stringtable_entry *path; /* Path to find library. */
int flags; /* Flags to indicate kind of library. */
unsigned int isa_level; /* Required ISA level. */
- uint64_t hwcap; /* Important hardware capabilities. */
- int bits_hwcap; /* Number of bits set in hwcap. */
- /* glibc-hwcaps subdirectory. If not NULL, hwcap must be zero. */
+ /* glibc-hwcaps subdirectory. */
struct glibc_hwcaps_subdirectory *hwcaps;
struct cache_entry *next; /* Next entry in list. */
@@ -433,15 +431,6 @@ compare (const struct cache_entry *e1, const struct cache_entry *e2)
if (res != 0)
return res;
}
- /* Sort by most specific hwcap. */
- if (e2->bits_hwcap > e1->bits_hwcap)
- return 1;
- else if (e2->bits_hwcap < e1->bits_hwcap)
- return -1;
- else if (e2->hwcap > e1->hwcap)
- return 1;
- else if (e2->hwcap < e1->hwcap)
- return -1;
}
return res;
}
@@ -547,14 +536,13 @@ save_cache (const char *cache_name)
int cache_entry_count = 0;
/* The old format doesn't contain hwcap entries and doesn't contain
libraries in subdirectories with hwcaps entries. Count therefore
- also all entries with hwcap == 0. */
+ all entries. */
int cache_entry_old_count = 0;
for (entry = entries; entry != NULL; entry = entry->next)
{
++cache_entry_count;
- if (entry->hwcap == 0)
- ++cache_entry_old_count;
+ ++cache_entry_old_count;
}
struct stringtable_finalized strings_finalized;
@@ -626,7 +614,7 @@ save_cache (const char *cache_name)
for (idx_old = 0, idx_new = 0, entry = entries; entry != NULL;
entry = entry->next, ++idx_new)
{
- if (opt_format != opt_format_new && entry->hwcap == 0)
+ if (opt_format != opt_format_new)
{
file_entries->libs[idx_old].flags = entry->flags;
/* XXX: Actually we can optimize here and remove duplicates. */
@@ -644,7 +632,7 @@ save_cache (const char *cache_name)
file_entries_new->libs[idx_new].flags = entry->flags;
file_entries_new->libs[idx_new].osversion_unused = 0;
if (entry->hwcaps == NULL)
- file_entries_new->libs[idx_new].hwcap = entry->hwcap;
+ file_entries_new->libs[idx_new].hwcap = 0;
else
file_entries_new->libs[idx_new].hwcap
= compute_hwcap_value (entry);
@@ -654,9 +642,7 @@ save_cache (const char *cache_name)
= str_offset + entry->path->offset;
}
- /* Ignore entries with hwcap for old format. */
- if (entry->hwcap == 0)
- ++idx_old;
+ ++idx_old;
}
/* Duplicate last old cache entry if needed. */
@@ -782,9 +768,7 @@ 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 = 0;
new_entry->hwcaps = hwcaps;
- new_entry->bits_hwcap = 0;
if (hwcaps != NULL)
hwcaps->used = true;