aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog21
-rw-r--r--gdb/amd64-windows-tdep.c9
-rw-r--r--gdb/i386-cygwin-tdep.c13
-rw-r--r--gdb/windows-tdep.c20
-rw-r--r--gdb/windows-tdep.h6
5 files changed, 46 insertions, 23 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 44229b0..676666c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,24 @@
+2013-10-01 Yao Qi <yao@codesourcery.com>
+
+ * amd64-windows-tdep.c: Remove inclusion of "solib.h" and
+ "solib-target.h".
+ (amd64_windows_init_abi): Don't call set_solib_ops and
+ set_gdbarch_iterate_over_objfiles_in_search_order. Call
+ windows_init_abi instead.
+ * i386-cygwin-tdep.c: Remove inclusion of "solib.h" and
+ "solib-target.h".
+ (i386_cygwin_init_abi): Don't call set_solib_ops,
+ set_gdbarch_has_dos_based_file_system and
+ set_gdbarch_iterate_over_objfiles_in_search_order. Call
+ windows_init_abi instead.
+ * windows-tdep.c: Include "solib.h" and "solib-target.h".
+ (windows_init_abi): New function.
+ (windows_iterate_over_objfiles_in_search_order): Make it
+ static.
+ * windows-tdep.h (windows_init_abi): Declare.
+ (windows_iterate_over_objfiles_in_search_order): Remove
+ declaration.
+
2013-10-01 Jerome Guitton <guitton@adacore.com>
Checked in by Joel Brobecker <brobecker@adacore.com>
diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c
index a75d6ba..359173a 100644
--- a/gdb/amd64-windows-tdep.c
+++ b/gdb/amd64-windows-tdep.c
@@ -18,8 +18,6 @@
#include "defs.h"
#include "osabi.h"
#include "amd64-tdep.h"
-#include "solib.h"
-#include "solib-target.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "regcache.h"
@@ -1177,6 +1175,8 @@ amd64_windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
amd64_init_abi (info, gdbarch);
+ windows_init_abi (info, gdbarch);
+
/* On Windows, "long"s are only 32bit. */
set_gdbarch_long_bit (gdbarch, 32);
@@ -1187,14 +1187,9 @@ amd64_windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_skip_trampoline_code (gdbarch,
amd64_windows_skip_trampoline_code);
- set_gdbarch_iterate_over_objfiles_in_search_order
- (gdbarch, windows_iterate_over_objfiles_in_search_order);
-
set_gdbarch_skip_prologue (gdbarch, amd64_windows_skip_prologue);
set_gdbarch_auto_wide_charset (gdbarch, amd64_windows_auto_wide_charset);
-
- set_solib_ops (gdbarch, &solib_target_so_ops);
}
/* -Wmissing-prototypes */
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index a3e4e7c..6533d1c 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -26,8 +26,6 @@
#include "gdb_obstack.h"
#include "xml-support.h"
#include "gdbcore.h"
-#include "solib.h"
-#include "solib-target.h"
#include "inferior.h"
/* Core file support. */
@@ -233,6 +231,8 @@ i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ windows_init_abi (info, gdbarch);
+
set_gdbarch_skip_trampoline_code (gdbarch, i386_cygwin_skip_trampoline_code);
set_gdbarch_skip_main_prologue (gdbarch, i386_skip_main_prologue);
@@ -243,8 +243,6 @@ i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
tdep->gregset_num_regs = ARRAY_SIZE (i386_windows_gregset_reg_offset);
tdep->sizeof_gregset = I386_WINDOWS_SIZEOF_GREGSET;
- set_solib_ops (gdbarch, &solib_target_so_ops);
-
/* Core file support. */
set_gdbarch_regset_from_core_section
(gdbarch, i386_windows_regset_from_core_section);
@@ -253,13 +251,6 @@ i386_cygwin_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_core_pid_to_str (gdbarch, i386_windows_core_pid_to_str);
set_gdbarch_auto_wide_charset (gdbarch, i386_cygwin_auto_wide_charset);
-
- /* Canonical paths on this target look like
- `c:\Program Files\Foo App\mydll.dll', for example. */
- set_gdbarch_has_dos_based_file_system (gdbarch, 1);
-
- set_gdbarch_iterate_over_objfiles_in_search_order
- (gdbarch, windows_iterate_over_objfiles_in_search_order);
}
static enum gdb_osabi
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index f90323f..fbbca0c 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -31,6 +31,8 @@
#include "coff-pe-read.h"
#include "gdb_bfd.h"
#include "complaints.h"
+#include "solib.h"
+#include "solib-target.h"
struct cmd_list_element *info_w32_cmdlist;
@@ -427,7 +429,7 @@ windows_xfer_shared_library (const char* so_name, CORE_ADDR load_addr,
to print the value of another global variable defined with the same
name, but in a different DLL. */
-void
+static void
windows_iterate_over_objfiles_in_search_order
(struct gdbarch *gdbarch,
iterate_over_objfiles_in_search_order_cb_ftype *cb,
@@ -481,6 +483,22 @@ init_w32_command_list (void)
}
}
+/* To be called from the various GDB_OSABI_CYGWIN handlers for the
+ various Windows architectures and machine types. */
+
+void
+windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ /* Canonical paths on this target look like
+ `c:\Program Files\Foo App\mydll.dll', for example. */
+ set_gdbarch_has_dos_based_file_system (gdbarch, 1);
+
+ set_gdbarch_iterate_over_objfiles_in_search_order
+ (gdbarch, windows_iterate_over_objfiles_in_search_order);
+
+ set_solib_ops (gdbarch, &solib_target_so_ops);
+}
+
/* Provide a prototype to silence -Wmissing-prototypes. */
extern initialize_file_ftype _initialize_windows_tdep;
diff --git a/gdb/windows-tdep.h b/gdb/windows-tdep.h
index 99136fa..7b04bb2 100644
--- a/gdb/windows-tdep.h
+++ b/gdb/windows-tdep.h
@@ -30,8 +30,6 @@ extern void windows_xfer_shared_library (const char* so_name,
struct gdbarch *gdbarch,
struct obstack *obstack);
-extern void windows_iterate_over_objfiles_in_search_order
- (struct gdbarch *gdbarch,
- iterate_over_objfiles_in_search_order_cb_ftype *cb,
- void *cb_data, struct objfile *current_objfile);
+extern void windows_init_abi (struct gdbarch_info info,
+ struct gdbarch *gdbarch);
#endif