gas: put emul decls in emul.h

The individual struct emulation instances shouldn't be declared in a .c
file; it and the producers of the symbols want to both see the
declarations, so declarations and definitions don't go out of sync. Move
these declarations to emul.h.

While there also adjust the conditional around this_format: That symbol
is never #define-d anywhere, and it's needed only when USE_EMULATIONS is
defined. (Really, when obj-multi isn't in use, it also is effectively
only ever written to.)
This commit is contained in:
Jan Beulich 2024-10-04 09:36:24 +02:00
parent 2ced0b79da
commit c41215350b
3 changed files with 5 additions and 5 deletions

View File

@ -130,10 +130,6 @@ static long start_time;
#ifdef USE_EMULATIONS
#define EMULATION_ENVIRON "AS_EMULATION"
extern struct emulation mipsbelf, mipslelf, mipself;
extern struct emulation i386coff, i386elf, i386aout;
extern struct emulation crisaout, criself;
static struct emulation *const emulations[] = { EMULATIONS };
static const int n_emulations = sizeof (emulations) / sizeof (emulations[0]);

View File

@ -35,6 +35,10 @@ struct emulation
COMMON struct emulation * this_emulation;
extern struct emulation mipsbelf, mipslelf, mipself;
extern struct emulation i386coff, i386elf, i386aout;
extern struct emulation crisaout, criself;
extern void common_emul_init (void);
#endif

View File

@ -82,7 +82,7 @@ extern const struct format_ops ecoff_format_ops;
extern const struct format_ops coff_format_ops;
extern const struct format_ops aout_format_ops;
#ifndef this_format
#ifdef USE_EMULATIONS
COMMON const struct format_ops *this_format;
#endif