[PATCH 1/3] Move core_bfd to program space

Pedro Alves
2018-05-03T16:22:38Z

From: Tom Tromey <tromey@redhat.com>

This moves the core_bfd global to be a field of the program space. It
then replaces core_bfd with a macro to avoid a massive patch -- the
same approach taken for various other program space fields.

This is a basic transformation for multi-target work.

yyyy-mm-dd Tom Tromey <tromey@redhat.com>
Pedro Alves <tromey@redhat.com>

* corefile.c (core_bfd): Remove.
* gdbcore.h (core_bfd): Now a macro.
* progspace.h (struct program_space) <cbfd>: New field.
---
gdb/corefile.c | 4 ----
gdb/gdbcore.h | 2 +-
gdb/progspace.h | 3 +++
3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/gdb/corefile.c b/gdb/corefile.c
index 114de83640..e0c7540140 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -49,10 +49,6 @@ static hook_type *exec_file_extra_hooks; /* Array of additional
hooks. */
static int exec_file_hook_count = 0; /* Size of array. */

-/* Binary file diddling handle for the core file. */
-
-bfd *core_bfd = NULL;
-
\f

/* Backward compatability with old way of specifying core files. */
diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h
index 401c213d48..d06ccc3507 100644
--- a/gdb/gdbcore.h
+++ b/gdb/gdbcore.h
@@ -133,7 +133,7 @@ extern void specify_exec_file_hook (void (*hook) (const char *filename));

/* Binary File Diddler for the core file. */

-extern bfd *core_bfd;
+#define core_bfd (current_program_space->cbfd)

/* corelow.c target. It is never NULL after GDB initialization. */

diff --git a/gdb/progspace.h b/gdb/progspace.h
index 67c0a240da..835fcfdd5d 100644
--- a/gdb/progspace.h
+++ b/gdb/progspace.h
@@ -157,6 +157,9 @@ struct program_space
It needs to be freed by xfree. It is not NULL iff EBFD is not NULL. */
char *pspace_exec_filename = NULL;

+ /* Binary file diddling handle for the core file. */
+ bfd *cbfd = NULL;
+
/* The address space attached to this program space. More than one
program space may be bound to the same address space. In the
traditional unix-like debugging scenario, this will usually
--
2.14.3