You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
/* This program allows you to build the files necessary to create
#include <time.h>
#include <sys/stat.h>
-
-#ifdef ANSI_PROTOTYPES
#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
#include <assert.h>
#ifdef DLLTOOL_ARM
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 *, ...);
+static void inform (const char *, ...) ATTRIBUTE_PRINTF_1;
static void set_dll_name_from_def (const char *);
static char *
{
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
}
}
-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)
{
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++)