diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 21 | ||||
-rw-r--r-- | gdb/amd64-windows-tdep.c | 9 | ||||
-rw-r--r-- | gdb/i386-cygwin-tdep.c | 13 | ||||
-rw-r--r-- | gdb/windows-tdep.c | 20 | ||||
-rw-r--r-- | gdb/windows-tdep.h | 6 |
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 |