[RFA/win32] move win32_xfer_shared_library to (new) win32-tdep...

Joel Brobecker brobecker@adacore.com
Sat Jan 10 09:09:00 GMT 2009


Hello,

This patch moves the win32_xfer_shared_library function to a file
that is not specific to the target CPU.  I introduced win32-tdep,
to follow the naming scheme used by win32-nat, even though these
file can also work on 64bit windows.

2009-01-10  Joel Brobecker  <brobecker@adacore.com>

        * win32-tdep.h, win32-tdep.c: New files.
        * i386-cygwin-tdep.h: Delete.
        * i386-cygwin-tdep.c: Include win32-tdep.h instead of
        i386-cygwin-tdep.h.
        (win32_xfer_shared_library): Delete.  Moved to win32-tdep.c.
        * win32-nat.c: Likewise.
        * configure.tgt: Add win32-tdep.o to the list of target object
        files for i386-cygwin and i386-mingw targets.

Tested on x86-windows. OK to apply?

Thank you,
-- 
Joel
-------------- next part --------------
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index b9cd21b..f2b8ffb 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -201,13 +201,13 @@ i[34567]86-*-gnu*)
 i[34567]86-*-cygwin*)
 	# Target: Intel 386 running win32
 	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
-			solib-target.o corelow.o"
+			solib-target.o corelow.o win32-tdep.o"
 	build_gdbserver=yes
 	;;
 i[34567]86-*-mingw32*)
 	# Target: Intel 386 running win32
 	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
-			solib-target.o corelow.o"
+			solib-target.o corelow.o win32-tdep.o"
 	build_gdbserver=yes
 	;;
 i[34567]86-*-*)
diff --git a/gdb/i386-cygwin-tdep.c b/gdb/i386-cygwin-tdep.c
index 3457cf2..d639f5b 100644
--- a/gdb/i386-cygwin-tdep.c
+++ b/gdb/i386-cygwin-tdep.c
@@ -21,7 +21,7 @@
 #include "osabi.h"
 #include "gdb_string.h"
 #include "i386-tdep.h"
-#include "i386-cygwin-tdep.h"
+#include "win32-tdep.h"
 #include "regset.h"
 #include "gdb_obstack.h"
 #include "xml-support.h"
@@ -111,24 +111,6 @@ i386_win32_regset_from_core_section (struct gdbarch *gdbarch,
   return NULL;
 }
 
-void
-win32_xfer_shared_library (const char* so_name, CORE_ADDR load_addr,
-			   struct obstack *obstack)
-{
-  char *p;
-  obstack_grow_str (obstack, "<library name=\"");
-  p = xml_escape_text (so_name);
-  obstack_grow_str (obstack, p);
-  xfree (p);
-  obstack_grow_str (obstack, "\"><segment address=\"0x");
-  /* The symbols in a dll are offset by 0x1000, which is the the
-     offset from 0 of the first byte in an image - because of the file
-     header and the section alignment. */
-  p = paddr_nz (load_addr + 0x1000);
-  obstack_grow_str (obstack, p);
-  obstack_grow_str (obstack, "\"/></library>");
-}
-
 struct cpms_data
 {
   struct obstack *obstack;
diff --git a/gdb/i386-cygwin-tdep.h b/gdb/i386-cygwin-tdep.h
deleted file mode 100644
index f3d9997..0000000
--- a/gdb/i386-cygwin-tdep.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Target-dependent code for Cygwin running on i386's, for GDB.
-
-   Copyright (C) 2007, 2008, 2009 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 I386_CYGWIN_TDEP_H
-#define I386_CYGWIN_TDEP_H
-
-struct obstack;
-
-extern void win32_xfer_shared_library (const char* so_name,
-				       CORE_ADDR load_addr,
-				       struct obstack *obstack);
-
-#endif /* I386_CYGWIN_TDEP_H */
diff --git a/gdb/win32-nat.c b/gdb/win32-nat.c
index 286f1f9..9a1a28c 100644
--- a/gdb/win32-nat.c
+++ b/gdb/win32-nat.c
@@ -60,7 +60,7 @@
 #include "i386-tdep.h"
 #include "i387-tdep.h"
 
-#include "i386-cygwin-tdep.h"
+#include "win32-tdep.h"
 #include "win32-nat.h"
 
 static struct target_ops win32_ops;
diff --git a/gdb/win32-tdep.c b/gdb/win32-tdep.c
new file mode 100644
index 0000000..1a4bae8
--- /dev/null
+++ b/gdb/win32-tdep.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 2008, 2009 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/>.  */
+
+#include "defs.h"
+#include "win32-tdep.h"
+#include "gdb_obstack.h"
+#include "xml-support.h"
+
+void
+win32_xfer_shared_library (const char* so_name, CORE_ADDR load_addr,
+			   struct obstack *obstack)
+{
+  char *p;
+  obstack_grow_str (obstack, "<library name=\"");
+  p = xml_escape_text (so_name);
+  obstack_grow_str (obstack, p);
+  xfree (p);
+  obstack_grow_str (obstack, "\"><segment address=\"0x");
+  /* The symbols in a dll are offset by 0x1000, which is the the
+     offset from 0 of the first byte in an image - because of the file
+     header and the section alignment. */
+  p = paddr_nz (load_addr + 0x1000);
+  obstack_grow_str (obstack, p);
+  obstack_grow_str (obstack, "\"/></library>");
+}
+
+
diff --git a/gdb/win32-tdep.h b/gdb/win32-tdep.h
new file mode 100644
index 0000000..a38aa33
--- /dev/null
+++ b/gdb/win32-tdep.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2008, 2009 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 WIN32_TDEP_H
+#define WIN32_TDEP_H
+
+struct obstack;
+
+extern void win32_xfer_shared_library (const char* so_name,
+				       CORE_ADDR load_addr,
+				       struct obstack *obstack);
+
+#endif


More information about the Gdb-patches mailing list