* configure.ac: Use AC_CHECK_DECLS instead of gcc_AC_CHECK_DECLS
[deliverable/binutils-gdb.git] / gdb / pa64solib.c
index 8a5cae188cd23e089036dbf31299139d5358c0db..e8074c61b35c882717ad210bd1c4b7e1a4c82442 100644 (file)
@@ -1,6 +1,6 @@
 /* Handle HP ELF shared libraries for GDB, the GNU Debugger.
 
-   Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation,
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation,
    Inc.
 
    This file is part of GDB.
@@ -52,6 +52,7 @@
 #include "language.h"
 #include "regcache.h"
 #include "exec.h"
+#include "hppa-tdep.h"
 
 #include <fcntl.h>
 
@@ -156,8 +157,8 @@ pa64_solib_sizeof_symbol_table (char *filename)
 
   /* We believe that filename was handed to us by the dynamic linker, and
      is therefore always an absolute path.  */
-  desc = openp (getenv ("PATH"), 1, filename, O_RDONLY | O_BINARY,
-               0, &absolute_name);
+  desc = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST, filename,
+               O_RDONLY | O_BINARY, 0, &absolute_name);
   if (desc < 0)
     {
       perror_with_name (filename);
@@ -220,7 +221,7 @@ pa64_solib_add_solib_objfile (struct so_list *so, char *name, int from_tty,
 {
   bfd *tmp_bfd;
   asection *sec;
-  obj_private_data_t *obj_private;
+  struct hppa_objfile_private *obj_private;
   struct section_addr_info *section_addrs;
   struct cleanup *my_cleanups;
 
@@ -278,17 +279,18 @@ pa64_solib_add_solib_objfile (struct so_list *so, char *name, int from_tty,
   /* Mark this as a shared library and save private data.  */
   so->objfile->flags |= OBJF_SHARED;
 
-  if (so->objfile->obj_private == NULL)
+  obj_private = (struct hppa_objfile_private *)
+               objfile_data (so->objfile, hppa_objfile_priv_data);
+  if (obj_private == NULL)
     {
-      obj_private = (obj_private_data_t *)
-       obstack_alloc (&so->objfile->psymbol_obstack,
-                      sizeof (obj_private_data_t));
+      obj_private = (struct hppa_objfile_private *)
+       obstack_alloc (&so->objfile->objfile_obstack,
+                      sizeof (struct hppa_objfile_private));
+      set_objfile_data (so->objfile, hppa_objfile_priv_data, obj_private);
       obj_private->unwind_info = NULL;
       obj_private->so_info = NULL;
-      so->objfile->obj_private = obj_private;
     }
 
-  obj_private = (obj_private_data_t *) so->objfile->obj_private;
   obj_private->so_info = so;
   obj_private->dp = so->pa64_solib_desc.linkage_ptr;
   do_cleanups (my_cleanups);
@@ -401,9 +403,9 @@ pa64_solib_add (char *arg_string, int from_tty, struct target_ops *target, int r
      We need to first determine if we're dealing with a dynamically
      linked executable.  If not, then return without an error or warning.
 
-     We also need to examine __dld_flags to determine if the shared library
-     list is valid and to determine if the libraries have been privately
-     mapped.  */
+     We also need to examine __dld_flags to determine if the shared
+     library list is valid and to determine if the libraries have been
+     privately mapped.  */
   if (symfile_objfile == NULL)
     return;
 
@@ -460,8 +462,8 @@ pa64_solib_add (char *arg_string, int from_tty, struct target_ops *target, int r
      DT_HP_DEBUG_PRIVATE to indicate that shared libraries should be
      mapped private.
 
-     DT_HP_DEBUG_CALLBACK to indicate that we want the dynamic linker to
-     call the breakpoint routine for significant events.  */
+     DT_HP_DEBUG_CALLBACK to indicate that we want the dynamic linker
+     to call the breakpoint routine for significant events.  */
 
 void
 pa64_solib_create_inferior_hook (void)
@@ -590,8 +592,8 @@ get_out:
    shared library events.  To resume notifications, GDB must call
    pa64_solib_create_inferior_hook.
 
-   This operation does not remove any knowledge of shared libraries which
-   GDB may already have been notified of.  */
+   This operation does not remove any knowledge of shared libraries
+   of which GDB may already have been notified.  */
 
 void
 pa64_solib_remove_inferior_hook (int pid)
@@ -647,7 +649,7 @@ pa64_solib_have_load_event (int pid)
 {
   CORE_ADDR event_kind;
 
-  event_kind = read_register (ARG0_REGNUM);
+  event_kind = read_register (HPPA_ARG0_REGNUM);
   return (event_kind == DLD_CB_LOAD);
 }
 
@@ -658,7 +660,7 @@ pa64_solib_have_unload_event (int pid)
 {
   CORE_ADDR event_kind;
 
-  event_kind = read_register (ARG0_REGNUM);
+  event_kind = read_register (HPPA_ARG0_REGNUM);
   return (event_kind == DLD_CB_UNLOAD);
 }
 
@@ -672,7 +674,7 @@ char *
 pa64_solib_loaded_library_pathname (int pid)
 {
   static char dll_path[MAXPATHLEN];
-  CORE_ADDR  dll_path_addr = read_register (ARG3_REGNUM);
+  CORE_ADDR  dll_path_addr = read_register (HPPA_ARG3_REGNUM);
   read_memory_string (dll_path_addr, dll_path, MAXPATHLEN);
   return dll_path;
 }
@@ -687,7 +689,7 @@ char *
 pa64_solib_unloaded_library_pathname (int pid)
 {
   static char dll_path[MAXPATHLEN];
-  CORE_ADDR dll_path_addr = read_register (ARG3_REGNUM);
+  CORE_ADDR dll_path_addr = read_register (HPPA_ARG3_REGNUM);
   read_memory_string (dll_path_addr, dll_path, MAXPATHLEN);
   return dll_path;
 }
@@ -794,23 +796,18 @@ pa64_sharedlibrary_info_command (char *ignore, int from_tty)
       if (so_list->loaded == 0)
        printf_unfiltered ("  (shared library unloaded)");
       printf_unfiltered ("  %-18s",
-       local_hex_string_custom (so_list->pa64_solib_desc.linkage_ptr,
-                                "016l"));
+       hex_string_custom (so_list->pa64_solib_desc.linkage_ptr, 16));
       printf_unfiltered ("\n");
       printf_unfiltered ("%-18s",
-       local_hex_string_custom (so_list->pa64_solib_desc.text_base,
-                                "016l"));
+       hex_string_custom (so_list->pa64_solib_desc.text_base, 16));
       printf_unfiltered (" %-18s",
-       local_hex_string_custom ((so_list->pa64_solib_desc.text_base
-                                 + so_list->pa64_solib_desc.text_size),
-                                "016l"));
+       hex_string_custom ((so_list->pa64_solib_desc.text_base
+                           + so_list->pa64_solib_desc.text_size), 16));
       printf_unfiltered (" %-18s",
-       local_hex_string_custom (so_list->pa64_solib_desc.data_base,
-                                "016l"));
+       hex_string_custom (so_list->pa64_solib_desc.data_base, 16));
       printf_unfiltered (" %-18s\n",
-       local_hex_string_custom ((so_list->pa64_solib_desc.data_base
-                                 + so_list->pa64_solib_desc.data_size),
-                                "016l"));
+       hex_string_custom ((so_list->pa64_solib_desc.data_base
+                           + so_list->pa64_solib_desc.data_size), 16));
       so_list = so_list->next;
     }
 }
@@ -890,7 +887,7 @@ _initialize_pa64_solib (void)
   add_info ("sharedlibrary", pa64_sharedlibrary_info_command,
            "Status of loaded shared object libraries.");
 
-  add_show_from_set
+  deprecated_add_show_from_set
     (add_set_cmd ("auto-solib-add", class_support, var_boolean,
                  (char *) &auto_solib_add,
                  "Set autoloading of shared library symbols.\n\
@@ -901,7 +898,7 @@ inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'.",
                  &setlist),
      &showlist);
 
-  add_show_from_set
+  deprecated_add_show_from_set
     (add_set_cmd ("auto-solib-limit", class_support, var_zinteger,
                  (char *) &auto_solib_limit,
                  "Set threshold (in Mb) for autoloading shared library symbols.\n\
@@ -926,7 +923,7 @@ threshold in megabytes.  Is ignored when using `sharedlibrary'.",
 
 /* Get some HPUX-specific data from a shared lib.  */
 CORE_ADDR
-so_lib_thread_start_addr (struct so_list *so)
+pa64_solib_thread_start_addr (struct so_list *so)
 {
   return so->pa64_solib_desc.tls_start_addr;
 }
@@ -1161,7 +1158,7 @@ add_to_solist (int from_tty, char *dll_path, int readsyms,
   new_so->pa64_solib_desc_addr = load_module_desc_addr;
   new_so->loaded = 1;
   new_so->name = obsavestring (dll_path, strlen(dll_path),
-                              &symfile_objfile->symbol_obstack);
+                              &symfile_objfile->objfile_obstack);
 
   /* If we are not going to load the library, tell the user if we
      haven't already and return.  */
This page took 0.026516 seconds and 4 git commands to generate.