/* dlltool.c -- tool to generate stuff for PE style DLLs
- Copyright (C) 1995-2016 Free Software Foundation, Inc.
+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
This file is part of GNU Binutils.
static const char *mname = "arm";
#endif
-#ifdef DLLTOOL_DEFAULT_ARM_EPOC
-static const char *mname = "arm-epoc";
-#endif
-
#ifdef DLLTOOL_DEFAULT_ARM_WINCE
static const char *mname = "arm-wince";
#endif
}
,
{
-#define MARM_EPOC 9
- "arm-epoc", ".byte", ".short", ".long", ".asciz", "@",
- "ldr\tip,[pc]\n\tldr\tpc,[ip]\n\t.long",
- ".global", ".space", ".align\t2",".align\t4", "",
- "epoc-pe-arm-little", bfd_arch_arm,
- arm_jtab, sizeof (arm_jtab), 8,
- 0, 0, 0, 0, 0, 0
- }
- ,
- {
-#define MARM_WINCE 10
+#define MARM_WINCE 9
"arm-wince", ".byte", ".short", ".long", ".asciz", "@",
"ldr\tip,[pc]\n\tldr\tpc,[ip]\n\t.long",
".global", ".space", ".align\t2",".align\t4", "-mapcs-32",
}
,
{
-#define MX86 11
+#define MX86 10
"i386:x86-64", ".byte", ".short", ".long", ".asciz", "#",
"jmp *", ".global", ".space", ".align\t2",".align\t4", "",
"pe-x86-64",bfd_arch_i386,
int ordinal;
int constant;
int noname; /* Don't put name in image file. */
- int private; /* Don't put reference in import lib. */
+ int private; /* Don't put reference in import lib. */
int data;
- int hint;
- int forward; /* Number of forward label, 0 means no forward. */
+ int forward; /* Number of forward label, 0 means no forward. */
struct export *next;
}
export_type;
case MMCORE_LE:
case MMCORE_ELF:
case MMCORE_ELF_LE:
- case MARM_EPOC:
case MARM_WINCE:
break;
default:
case MMCORE_LE:
case MMCORE_ELF:
case MMCORE_ELF_LE:
- case MARM_EPOC:
case MARM_WINCE:
return ".rva\t";
default:
case MMCORE_LE:
case MMCORE_ELF:
case MMCORE_ELF_LE:
- case MARM_EPOC:
case MARM_WINCE:
break;
case M386:
case IDATA6:
if (!exp->noname)
{
- /* This used to add 1 to exp->hint. I don't know
- why it did that, and it does not match what I see
- in programs compiled with the MS tools. */
- int idx = exp->hint;
+ int idx = exp->ordinal;
+
if (exp->its_name)
si->size = strlen (exp->its_name) + 3;
else
alias_exp.noname = exp->noname;
alias_exp.private = exp->private;
alias_exp.data = exp->data;
- alias_exp.hint = exp->hint;
alias_exp.forward = exp->forward;
alias_exp.next = exp->next;
n = make_one_lib_file (&alias_exp, i + PREFIX_ALIAS_BASE, delay);
search_data.symname = "__NULL_IMPORT_DESCRIPTOR";
search_data.found = FALSE;
- bfd_init ();
+ if (bfd_init () != BFD_INIT_MAGIC)
+ fatal (_("fatal error: libbfd ABI mismatch"));
abfd = bfd_openr (identify_imp_name, 0);
if (abfd == NULL)
{
/* First work out the minimum ordinal chosen. */
export_type *exp;
-
- int i;
- int hint = 0;
export_type **d_export_vec = xmalloc (sizeof (export_type *) * d_nfuncs);
+ int i;
inform (_("Processing definitions"));
qsort (d_exports_lexically, i, sizeof (export_type *), nfunc);
- /* Fill exp entries with their hint values. */
- for (i = 0; i < d_nfuncs; i++)
- if (!d_exports_lexically[i]->noname || show_allnames)
- d_exports_lexically[i]->hint = hint++;
-
inform (_("Processed definitions"));
}