This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] Make solib-sunos.c more self-contained
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: kevinb at redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Sun, 3 Oct 2004 00:08:04 +0200 (CEST)
- Subject: [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