X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsolib-sunos.c;h=b87361e9e163cf687ead5b13c4558b8cf08772ba;hb=5a95d5a9695da6770d68aa512ee423dc034e4b42;hp=23b7dd278d3744846884c719e44857ac5c4e798d;hpb=982526a134330b9524daea65f26ba2cfe36cb275;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/solib-sunos.c b/gdb/solib-sunos.c index 23b7dd278d..b87361e9e1 100644 --- a/gdb/solib-sunos.c +++ b/gdb/solib-sunos.c @@ -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, 2007 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 #include - /* SunOS shared libs need the nlist structure. */ +/* SunOS shared libs need the nlist structure. */ #include #include @@ -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 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);