aboutsummaryrefslogtreecommitdiff
path: root/binutils/dlltool.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2005-08-01 16:54:07 +0000
committerNick Clifton <nickc@redhat.com>2005-08-01 16:54:07 +0000
commitc69722900b32354108b1409fe920b0275aa49341 (patch)
treee64f02f90686701c24be97203e14c55fb803f613 /binutils/dlltool.c
parentc5211a5487be06a0bc2172036a8a426b00c0d427 (diff)
downloadgdb-c69722900b32354108b1409fe920b0275aa49341.zip
gdb-c69722900b32354108b1409fe920b0275aa49341.tar.gz
gdb-c69722900b32354108b1409fe920b0275aa49341.tar.bz2
(alphafunc): Remove and replace usage with nfunc.
(nfunc): Fix sorting of fastcall symbols when --kill-at is used.
Diffstat (limited to 'binutils/dlltool.c')
-rw-r--r--binutils/dlltool.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
index eda8e3c..512cf7b 100644
--- a/binutils/dlltool.c
+++ b/binutils/dlltool.c
@@ -699,7 +699,6 @@ static int nfunc (const void *, const void *);
static void remove_null_names (export_type **);
static void process_duplicates (export_type **);
static void fill_ordinals (export_type **);
-static int alphafunc (const void *, const void *);
static void mangle_defs (void);
static void usage (FILE *, int);
static void inform (const char *, ...) ATTRIBUTE_PRINTF_1;
@@ -2828,8 +2827,16 @@ nfunc (const void *a, const void *b)
{
export_type *ap = *(export_type **) a;
export_type *bp = *(export_type **) b;
+ const char *an = ap->name;
+ const char *bn = bp->name;
- return (strcmp (ap->name, bp->name));
+ if (killat)
+ {
+ an = (an[0] == '@') ? an + 1 : an;
+ bn = (bn[0] == '@') ? bn + 1 : bn;
+ }
+
+ return (strcmp (an, bn));
}
static void
@@ -2973,15 +2980,6 @@ fill_ordinals (export_type **d_export_vec)
}
}
-static int
-alphafunc (const void *av, const void *bv)
-{
- const export_type **a = (const export_type **) av;
- const export_type **b = (const export_type **) bv;
-
- return strcmp ((*a)->name, (*b)->name);
-}
-
static void
mangle_defs (void)
{
@@ -3017,7 +3015,7 @@ mangle_defs (void)
d_exports_lexically[i] = 0;
- qsort (d_exports_lexically, i, sizeof (export_type *), alphafunc);
+ qsort (d_exports_lexically, i, sizeof (export_type *), nfunc);
/* Fill exp entries with their hint values. */
for (i = 0; i < d_nfuncs; i++)