* configure.ac: Use AC_CHECK_DECLS instead of gcc_AC_CHECK_DECLS
[deliverable/binutils-gdb.git] / gdb / somread.c
index e3df6e167a1dfa5c95ab7cb9201264492242ca12..e65bdcc98cdf0cf913dd375ae6a8f4d6edd46802 100644 (file)
@@ -1,6 +1,6 @@
 /* Read HP PA/Risc object files for GDB.
-   Copyright 1991, 1992, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-   Free Software Foundation, Inc.
+   Copyright 1991, 1992, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002,
+   2004 Free Software Foundation, Inc.
    Written by Fred Fish at Cygnus Support.
 
    This file is part of GDB.
 #include "som.h"
 #include "libhppa.h"
 
-/* Various things we might complain about... */
+#include "solib-som.h"
 
+/* Prototypes for local functions.  */
 static int init_import_symbols (struct objfile *objfile);
 
-static void som_symfile_init (struct objfile *);
-
-static void som_new_init (struct objfile *);
-
-static void som_symfile_read (struct objfile *, int);
-
-static void som_symfile_finish (struct objfile *);
-
-static void som_symtab_read (bfd *, struct objfile *,
-                            struct section_offsets *);
-
-static void som_symfile_offsets (struct objfile *, struct section_addr_info *);
-
 /* FIXME: These should really be in a common header somewhere */
 
 extern void hpread_build_psymtabs (struct objfile *, int);
@@ -219,6 +207,7 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
              if ((symname[0] == 'L' && symname[1] == '$')
              || (symname[0] == '$' && symname[strlen (symname) - 1] == '$')
                  || (symname[0] == 'D' && symname[1] == '$')
+                 || (strncmp (symname, "L0\001", 3) == 0)
                  || (strncmp (symname, "$PIC", 4) == 0))
                continue;
              break;
@@ -377,7 +366,7 @@ som_symfile_read (struct objfile *objfile, int mainline)
   hpread_build_psymtabs (objfile, mainline);
 
   /* Force hppa-tdep.c to re-read the unwind descriptors.  */
-  objfile->obj_private = NULL;
+  objfile->deprecated_obj_private = NULL;
 }
 
 /* Initialize anything that needs initializing when a completely new symbol
@@ -401,9 +390,9 @@ som_new_init (struct objfile *ignore)
 static void
 som_symfile_finish (struct objfile *objfile)
 {
-  if (objfile->sym_stab_info != NULL)
+  if (objfile->deprecated_sym_stab_info != NULL)
     {
-      xmfree (objfile->md, objfile->sym_stab_info);
+      xfree (objfile->deprecated_sym_stab_info);
     }
   hpread_symfile_finish (objfile);
 }
@@ -432,7 +421,7 @@ som_symfile_offsets (struct objfile *objfile, struct section_addr_info *addrs)
 
   objfile->num_sections = bfd_count_sections (objfile->obfd);
   objfile->section_offsets = (struct section_offsets *)
-    obstack_alloc (&objfile->psymbol_obstack, 
+    obstack_alloc (&objfile->objfile_obstack, 
                   SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
 
   /* FIXME: ezannoni 2000-04-20 The section names in SOM are not
@@ -477,9 +466,9 @@ init_import_symbols (struct objfile *objfile)
   unsigned int string_table;
   unsigned int string_table_size;
   char *string_buffer;
-  register int i;
-  register int j;
-  register int k;
+  int i;
+  int j;
+  int k;
   asection *text_section;      /* section handle */
   unsigned int dl_header[12];  /* SOM executable header */
 
@@ -534,7 +523,7 @@ init_import_symbols (struct objfile *objfile)
      to do with psymbols, just a matter of convenience.  We want the
      import list to be freed when the objfile is deallocated */
   objfile->import_list
-    = (ImportEntry *) obstack_alloc (&objfile->psymbol_obstack,
+    = (ImportEntry *) obstack_alloc (&objfile->objfile_obstack,
                                   import_list_size * sizeof (ImportEntry));
 
   /* Read in the import entries, a bunch at a time */
@@ -550,7 +539,7 @@ init_import_symbols (struct objfile *objfile)
          if (buffer[i].type != (unsigned char) 0)
            {
              objfile->import_list[k]
-               = (char *) obstack_alloc (&objfile->psymbol_obstack, strlen (string_buffer + buffer[i].name) + 1);
+               = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1);
              strcpy (objfile->import_list[k], string_buffer + buffer[i].name);
              /* Some day we might want to record the type and other information too */
            }
@@ -570,7 +559,7 @@ init_import_symbols (struct objfile *objfile)
       if (buffer[i].type != (unsigned char) 0)
        {
          objfile->import_list[k]
-           = (char *) obstack_alloc (&objfile->psymbol_obstack, strlen (string_buffer + buffer[i].name) + 1);
+           = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1);
          strcpy (objfile->import_list[k], string_buffer + buffer[i].name);
          /* Some day we might want to record the type and other information too */
        }
@@ -597,9 +586,9 @@ init_export_symbols (struct objfile *objfile)
   unsigned int string_table;
   unsigned int string_table_size;
   char *string_buffer;
-  register int i;
-  register int j;
-  register int k;
+  int i;
+  int j;
+  int k;
   asection *text_section;      /* section handle */
   unsigned int dl_header[12];  /* SOM executable header */
 
@@ -657,7 +646,7 @@ init_export_symbols (struct objfile *objfile)
      to do with psymbols, just a matter of convenience.  We want the
      export list to be freed when the objfile is deallocated */
   objfile->export_list
-    = (ExportEntry *) obstack_alloc (&objfile->psymbol_obstack,
+    = (ExportEntry *) obstack_alloc (&objfile->objfile_obstack,
                                   export_list_size * sizeof (ExportEntry));
 
   /* Read in the export entries, a bunch at a time */
@@ -673,7 +662,7 @@ init_export_symbols (struct objfile *objfile)
          if (buffer[i].type != (unsigned char) 0)
            {
              objfile->export_list[k].name
-               = (char *) obstack_alloc (&objfile->psymbol_obstack, strlen (string_buffer + buffer[i].name) + 1);
+               = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1);
              strcpy (objfile->export_list[k].name, string_buffer + buffer[i].name);
              objfile->export_list[k].address = buffer[i].value;
              /* Some day we might want to record the type and other information too */
@@ -697,7 +686,7 @@ init_export_symbols (struct objfile *objfile)
       if (buffer[i].type != (unsigned char) 0)
        {
          objfile->export_list[k].name
-           = (char *) obstack_alloc (&objfile->psymbol_obstack, strlen (string_buffer + buffer[i].name) + 1);
+           = (char *) obstack_alloc (&objfile->objfile_obstack, strlen (string_buffer + buffer[i].name) + 1);
          strcpy (objfile->export_list[k].name, string_buffer + buffer[i].name);
          /* Some day we might want to record the type and other information too */
          objfile->export_list[k].address = buffer[i].value;
This page took 0.025535 seconds and 4 git commands to generate.