This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] Make solib-sunos.c more self-contained


Most of the remaining lines in the remaining nm-*bsd*.h files consist
of defines for the old a.out shared library support.  It's pretty easy
to autoconf these; we already have a suitable define:
HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS.  This patch moves these defines
into solib-sunos.c.

Kevin, d'you have any objections?

Mark


Index: ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* solib-sunos.c [HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS] (link_map)
	(lm_addr, lm_name, lm_next, link_dynamic_2, ld_loaded, rtc_symb)
	(rtc_sp, rtc_next, ld_debug, ldd_in_debugger, ldd_bp_addr)
	(ldd_bp_inst, ldd_cp, link_dynamic, ld_version, ldd, ld_un, ld_2):
	New defines.

Index: solib-sunos.c
===================================================================
RCS file: /cvs/src/src/gdb/solib-sunos.c,v
retrieving revision 1.16
diff -u -p -r1.16 solib-sunos.c
--- solib-sunos.c 30 Sep 2004 19:57:54 -0000 1.16
+++ solib-sunos.c 2 Oct 2004 22:02:11 -0000
@@ -1,7 +1,7 @@
 /* Handle SunOS shared libraries for GDB, the GNU Debugger.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
-   2001, 2004
-   Free Software Foundation, Inc.
+
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
+   2000, 2001, 2004 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,7 @@
 #include <sys/param.h>
 #include <fcntl.h>
 
- /* SunOS shared libs need the nlist structure.  */
+/* SunOS shared libs need the nlist structure.  */
 #include <a.out.h>
 #include <link.h>
 
@@ -42,6 +42,50 @@
 #include "bcache.h"
 #include "regcache.h"
 
+/* The shared library implementation found on BSD a.out systems is
+   very similar to the SunOS implementation.  However, the data
+   structures defined in <link.h> are named very differently.  Make up
+   for those differences here.  */
+
+#ifdef HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS
+
+/* FIXME: Temporary until the equivalent defines have been removed
+   from all nm-*bsd*.h files.  */
+#ifndef link_dynamic
+
+/* Map `struct link_map' and its members.  */
+#define link_map	so_map
+#define lm_addr		som_addr
+#define lm_name		som_path
+#define lm_next		som_next
+
+/* Map `struct link_dynamic_2' and its members.  */
+#define link_dynamic_2	section_dispatch_table
+#define ld_loaded	sdt_loaded
+
+/* Map `struct rtc_symb' and its members.  */
+#define rtc_symb	rt_symbol
+#define rtc_sp		rt_sp
+#define rtc_next	rt_next
+
+/* Map `struct ld_debug' and its members.  */
+#define ld_debug	so_debug
+#define ldd_in_debugger	dd_in_debugger
+#define ldd_bp_addr	dd_bpt_addr
+#define ldd_bp_inst	dd_bpt_shadow
+#define ldd_cp		dd_cc
+
+/* Map `struct link_dynamic' and its members.  */
+#define link_dynamic	_dynamic
+#define ld_version	d_version
+#define ldd		d_debug
+#define ld_un		d_un
+#define ld_2		d_sdt
+
+#endif
+
+#endif
+
 /* Link map info to include in an allocated so_list entry */
 
 struct lm_info


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]