*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / solib-sunos.c
index 23b7dd278d3744846884c719e44857ac5c4e798d..4dac1b7a1febbf0e1859fdea8869622a295275cb 100644 (file)
@@ -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 (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
+   2000, 2001, 2004 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,8 +17,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 
@@ -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>
 
 #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
@@ -394,10 +438,8 @@ sunos_current_sos (void)
       target_read_string (LM_NAME (new), &buffer,
                          SO_NAME_MAX_PATH_SIZE - 1, &errcode);
       if (errcode != 0)
-       {
-         warning ("current_sos: Can't read pathname for load map: %s\n",
-                  safe_strerror (errcode));
-       }
+       warning (_("Can't read pathname for load map: %s."),
+                safe_strerror (errcode));
       else
        {
          strncpy (new->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
@@ -495,7 +537,7 @@ disable_break (void)
 
   if (stop_pc != breakpoint_addr)
     {
-      warning ("stopped at unknown breakpoint while handling shared libraries");
+      warning (_("stopped at unknown breakpoint while handling shared libraries"));
     }
 
   return 1;
@@ -651,7 +693,7 @@ sunos_special_symbol_handling (void)
 
    SYNOPSIS
 
-   void sunos_solib_create_inferior_hook()
+   void sunos_solib_create_inferior_hook ()
 
    DESCRIPTION
 
@@ -706,7 +748,7 @@ sunos_solib_create_inferior_hook (void)
 
   if (!enable_break ())
     {
-      warning ("shared library handler failed to enable breakpoint");
+      warning (_("shared library handler failed to enable breakpoint"));
       return;
     }
 
@@ -743,7 +785,7 @@ sunos_solib_create_inferior_hook (void)
 
   if (!disable_break ())
     {
-      warning ("shared library handler failed to disable breakpoint");
+      warning (_("shared library handler failed to disable breakpoint"));
     }
 
   solib_add ((char *) 0, 0, (struct target_ops *) 0, auto_solib_add);
This page took 0.030249 seconds and 4 git commands to generate.