[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