[binutils-gdb] gas: put emul decls in emul.h
Jan Beulich
jbeulich@sourceware.org
Fri Oct 4 07:38:17 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c41215350b049439974f304b4e232ec3e73a72a0
commit c41215350b049439974f304b4e232ec3e73a72a0
Author: Jan Beulich <jbeulich@suse.com>
Date: Fri Oct 4 09:36:24 2024 +0200
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.)
Diff:
---
gas/as.c | 4 ----
gas/emul.h | 4 ++++
gas/obj.h | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/gas/as.c b/gas/as.c
index 7117be21df3..030da2e0501 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -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]);
diff --git a/gas/emul.h b/gas/emul.h
index d4c3f062898..d2ca8f5765a 100644
--- a/gas/emul.h
+++ b/gas/emul.h
@@ -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
diff --git a/gas/obj.h b/gas/obj.h
index 4676d07b65d..22b56e101b5 100644
--- a/gas/obj.h
+++ b/gas/obj.h
@@ -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
More information about the Binutils-cvs
mailing list