mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 18:08:24 +08:00
dlltool.c: Support for internal names too.
This commit is contained in:
@ -251,7 +251,7 @@ typedef struct dlist
|
|||||||
typedef struct export
|
typedef struct export
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
char *equal;
|
char *internal_name;
|
||||||
int ordinal;
|
int ordinal;
|
||||||
int constant;
|
int constant;
|
||||||
int noname;
|
int noname;
|
||||||
@ -277,9 +277,9 @@ yyerror ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
def_exports (name, equal, ordinal, noname, constant)
|
def_exports (name, internal_name, ordinal, noname, constant)
|
||||||
char *name;
|
char *name;
|
||||||
char *equal;
|
char *internal_name;
|
||||||
int ordinal;
|
int ordinal;
|
||||||
int noname;
|
int noname;
|
||||||
int constant;
|
int constant;
|
||||||
@ -287,23 +287,13 @@ def_exports (name, equal, ordinal, noname, constant)
|
|||||||
struct export *p = (struct export *) xmalloc (sizeof (*p));
|
struct export *p = (struct export *) xmalloc (sizeof (*p));
|
||||||
|
|
||||||
p->name = name;
|
p->name = name;
|
||||||
p->equal = equal;
|
p->internal_name = internal_name ? internal_name : name;
|
||||||
p->ordinal = ordinal;
|
p->ordinal = ordinal;
|
||||||
p->constant = constant;
|
p->constant = constant;
|
||||||
p->noname = noname;
|
p->noname = noname;
|
||||||
p->next = d_exports;
|
p->next = d_exports;
|
||||||
d_exports = p;
|
d_exports = p;
|
||||||
d_nfuncs++;
|
d_nfuncs++;
|
||||||
|
|
||||||
|
|
||||||
printf ("EXPORTS %s", name);
|
|
||||||
if (equal)
|
|
||||||
printf ("=%s", equal);
|
|
||||||
if (ordinal > 0)
|
|
||||||
printf ("@%d", ordinal);
|
|
||||||
if (constant)
|
|
||||||
printf (" CONSTANT");
|
|
||||||
printf ("\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -542,10 +532,12 @@ FILE *f;
|
|||||||
fprintf(f,"\n");
|
fprintf(f,"\n");
|
||||||
for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
|
for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
|
||||||
{
|
{
|
||||||
fprintf (f, "%s %d %s @ %d %s%s\n",
|
fprintf (f, "%s %d = %s %s @ %d %s%s\n",
|
||||||
ASM_C,
|
ASM_C,
|
||||||
i,
|
i,
|
||||||
exp->name, exp->ordinal,
|
exp->name,
|
||||||
|
exp->internal_name,
|
||||||
|
exp->ordinal,
|
||||||
exp->noname ? "NONAME " : "",
|
exp->noname ? "NONAME " : "",
|
||||||
exp->constant ? "CONSTANT" : "");
|
exp->constant ? "CONSTANT" : "");
|
||||||
}
|
}
|
||||||
@ -599,7 +591,7 @@ gen_exp_file ()
|
|||||||
i, exp->ordinal - 1);
|
i, exp->ordinal - 1);
|
||||||
i = exp->ordinal;
|
i = exp->ordinal;
|
||||||
}
|
}
|
||||||
fprintf (f, "\t%s %s\t%s %d\n", ASM_LONG, exp->name, ASM_C, exp->ordinal);
|
fprintf (f, "\t%s %s\t%s %d\n", ASM_LONG, exp->internal_name, ASM_C, exp->ordinal);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user