123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- --- src/readelf.c
- +++ src/readelf.c
- @@ -4773,10 +4773,11 @@ listptr_base (struct listptr *p)
- return cudie_base (&cu);
- }
-
- +static const char *listptr_name;
- +
- static int
- -compare_listptr (const void *a, const void *b, void *arg)
- +compare_listptr (const void *a, const void *b)
- {
- - const char *name = arg;
- struct listptr *p1 = (void *) a;
- struct listptr *p2 = (void *) b;
-
- @@ -4792,21 +4793,21 @@ compare_listptr (const void *a, const void *b, void *arg)
- p1->warned = p2->warned = true;
- error (0, 0,
- gettext ("%s %#" PRIx64 " used with different address sizes"),
- - name, (uint64_t) p1->offset);
- + listptr_name, (uint64_t) p1->offset);
- }
- if (p1->dwarf64 != p2->dwarf64)
- {
- p1->warned = p2->warned = true;
- error (0, 0,
- gettext ("%s %#" PRIx64 " used with different offset sizes"),
- - name, (uint64_t) p1->offset);
- + listptr_name, (uint64_t) p1->offset);
- }
- if (listptr_base (p1) != listptr_base (p2))
- {
- p1->warned = p2->warned = true;
- error (0, 0,
- gettext ("%s %#" PRIx64 " used with different base addresses"),
- - name, (uint64_t) p1->offset);
- + listptr_name, (uint64_t) p1->offset);
- }
- if (p1->attr != p2 ->attr)
- {
- @@ -4814,7 +4815,7 @@ compare_listptr (const void *a, const void *b, void *arg)
- error (0, 0,
- gettext ("%s %#" PRIx64
- " used with different attribute %s and %s"),
- - name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr),
- + listptr_name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr),
- dwarf_attr_name (p2->attr));
- }
- }
- @@ -4885,9 +4886,11 @@ notice_listptr (enum section_e section, struct listptr_table *table,
- static void
- sort_listptr (struct listptr_table *table, const char *name)
- {
- - if (table->n > 0)
- - qsort_r (table->table, table->n, sizeof table->table[0],
- - &compare_listptr, (void *) name);
- + if (table->n > 0) {
- + listptr_name = name;
- + qsort (table->table, table->n, sizeof table->table[0],
- + &compare_listptr);
- + }
- }
-
- static bool
|