aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2022-04-04 21:07:54 +0100
committerAndrew Burgess <aburgess@redhat.com>2022-04-06 13:09:44 +0100
commitc8154ce0d6942e5988076edd674036ff384ab433 (patch)
tree963c708838288216c653411d944ea3bb6b61d322
parentca028a46d51374864e4a4aa2942dfa7d93b893ce (diff)
downloadbinutils-c8154ce0d6942e5988076edd674036ff384ab433.zip
binutils-c8154ce0d6942e5988076edd674036ff384ab433.tar.gz
binutils-c8154ce0d6942e5988076edd674036ff384ab433.tar.bz2
gdb: move gdb_disassembly_flag into a new disasm-flags.h file
While working on the disassembler I was getting frustrated. Every time I touched disasm.h it seemed like every file in GDB would need to be rebuilt. Surely the disassembler can't be required by that many parts of GDB, right? Turns out that disasm.h is included in target.h, so pretty much every file was being rebuilt! The only thing from disasm.h that target.h needed is the gdb_disassembly_flag enum, as this is part of the target_ops api. In this commit I move gdb_disassembly_flag into its own file. This is then included in target.h and disasm.h, after which, the number of files that depend on disasm.h is much reduced. I also audited all the other includes of disasm.h and found that the includes in mep-tdep.c and python/py-registers.c are no longer needed, so I've removed these. Now, after changing disasm.h, GDB rebuilds much quicker. There should be no user visible changes after this commit.
-rw-r--r--gdb/Makefile.in1
-rw-r--r--gdb/arc-linux-tdep.c1
-rw-r--r--gdb/disasm-flags.h40
-rw-r--r--gdb/disasm.h14
-rw-r--r--gdb/mep-tdep.c1
-rw-r--r--gdb/python/py-registers.c1
-rw-r--r--gdb/s12z-tdep.c1
-rw-r--r--gdb/target.h2
8 files changed, 45 insertions, 16 deletions
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index a775b2f..647f012 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1289,6 +1289,7 @@ HFILES_NO_SRCDIR = \
defs.h \
dicos-tdep.h \
dictionary.h \
+ disasm-flags.h \
disasm.h \
dummy-frame.h \
dwarf2/cu.h \
diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
index e895b72..1744b75 100644
--- a/gdb/arc-linux-tdep.c
+++ b/gdb/arc-linux-tdep.c
@@ -24,6 +24,7 @@
#include "opcode/arc.h"
#include "osabi.h"
#include "solib-svr4.h"
+#include "disasm.h"
/* ARC header files. */
#include "opcodes/arc-dis.h"
diff --git a/gdb/disasm-flags.h b/gdb/disasm-flags.h
new file mode 100644
index 0000000..025b689
--- /dev/null
+++ b/gdb/disasm-flags.h
@@ -0,0 +1,40 @@
+/* Disassemble flags for GDB.
+
+ Copyright (C) 2002-2022 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef DISASM_FLAGS_H
+#define DISASM_FLAGS_H
+
+#include "gdbsupport/enum-flags.h"
+
+/* Flags used to control how GDB's disassembler behaves. */
+
+enum gdb_disassembly_flag
+ {
+ DISASSEMBLY_SOURCE_DEPRECATED = (0x1 << 0),
+ DISASSEMBLY_RAW_INSN = (0x1 << 1),
+ DISASSEMBLY_OMIT_FNAME = (0x1 << 2),
+ DISASSEMBLY_FILENAME = (0x1 << 3),
+ DISASSEMBLY_OMIT_PC = (0x1 << 4),
+ DISASSEMBLY_SOURCE = (0x1 << 5),
+ DISASSEMBLY_SPECULATIVE = (0x1 << 6),
+ };
+DEF_ENUM_FLAGS_TYPE (enum gdb_disassembly_flag, gdb_disassembly_flags);
+
+#endif /* DISASM_FLAGS_H */
+
diff --git a/gdb/disasm.h b/gdb/disasm.h
index b71cd09..7efab7d 100644
--- a/gdb/disasm.h
+++ b/gdb/disasm.h
@@ -20,19 +20,7 @@
#define DISASM_H
#include "dis-asm.h"
-#include "gdbsupport/enum-flags.h"
-
-enum gdb_disassembly_flag
- {
- DISASSEMBLY_SOURCE_DEPRECATED = (0x1 << 0),
- DISASSEMBLY_RAW_INSN = (0x1 << 1),
- DISASSEMBLY_OMIT_FNAME = (0x1 << 2),
- DISASSEMBLY_FILENAME = (0x1 << 3),
- DISASSEMBLY_OMIT_PC = (0x1 << 4),
- DISASSEMBLY_SOURCE = (0x1 << 5),
- DISASSEMBLY_SPECULATIVE = (0x1 << 6),
- };
-DEF_ENUM_FLAGS_TYPE (enum gdb_disassembly_flag, gdb_disassembly_flags);
+#include "disasm-flags.h"
struct gdbarch;
struct ui_out;
diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c
index 696d9c6..d16c68e 100644
--- a/gdb/mep-tdep.c
+++ b/gdb/mep-tdep.c
@@ -37,7 +37,6 @@
#include "regcache.h"
#include "remote.h"
#include "sim-regno.h"
-#include "disasm.h"
#include "trad-frame.h"
#include "reggroups.h"
#include "elf-bfd.h"
diff --git a/gdb/python/py-registers.c b/gdb/python/py-registers.c
index eab88a3..975eb2c 100644
--- a/gdb/python/py-registers.c
+++ b/gdb/python/py-registers.c
@@ -20,7 +20,6 @@
#include "defs.h"
#include "gdbarch.h"
#include "arch-utils.h"
-#include "disasm.h"
#include "reggroups.h"
#include "python-internal.h"
#include "user-regs.h"
diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c
index bf6a71c..5394c1b 100644
--- a/gdb/s12z-tdep.c
+++ b/gdb/s12z-tdep.c
@@ -32,6 +32,7 @@
#include "remote.h"
#include "opcodes/s12z-opc.h"
#include "gdbarch.h"
+#include "disasm.h"
/* Two of the registers included in S12Z_N_REGISTERS are
the CCH and CCL "registers" which are just views into
diff --git a/gdb/target.h b/gdb/target.h
index 4cc79df..c9791e8 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -79,7 +79,7 @@ struct inferior;
#include "btrace.h"
#include "record.h"
#include "command.h"
-#include "disasm.h"
+#include "disasm-flags.h"
#include "tracepoint.h"
#include "gdbsupport/break-common.h" /* For enum target_hw_bp_type. */