This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Delete offsets, num_offsets args to syms_from_objfile


Tom Tromey writes:
 > >>>>> "Doug" == Doug Evans <dje@google.com> writes:
 > 
 > Doug> 2013-05-06  Doug Evans  <dje@google.com>
 > Doug> 	* symfile.c (syms_from_objfile_1): Delete args offsets, num_offsets.
 > Doug> 	All callers updated.
 > Doug> 	(syms_from_objfile): Ditto.  Make static.
 > Doug> 	(symbol_file_add_with_addrs_or_offsets): Delete args offsets,
 > Doug> 	num_offsets.  All callers updated.
 > Doug> 	* symfile.h (syms_from_objfile): Delete.
 > 
 > After this patch, symbol_file_add_with_addrs_or_offsets is misnamed.
 > It no longer accepts 'offsets'.

Heh, righto.

2013-05-06  Doug Evans  <dje@google.com>

	* symfile.c (syms_from_objfile_1): Delete args offsets, num_offsets.
	All callers updated.
	(syms_from_objfile): Ditto.  Make static.
	(symbol_file_add_with_addrs): Renamed from
	symbol_file_add_with_addrs_or_offsets.  Delete args offsets,
	num_offsets.  All callers updated.
	* symfile.h (syms_from_objfile): Delete.

Index: symfile.c
===================================================================
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 1.374
diff -u -p -r1.374 symfile.c
--- symfile.c	6 May 2013 19:15:17 -0000	1.374
+++ symfile.c	6 May 2013 20:21:45 -0000
@@ -913,17 +913,6 @@ init_entry_point_info (struct objfile *o
    into an offset from the section VMA's as it appears in the object
    file, and then call the file's sym_offsets function to convert this
    into a format-specific offset table --- a `struct section_offsets'.
-   If ADDRS is non-zero, OFFSETS must be zero.
-
-   OFFSETS is a table of section offsets already in the right
-   format-specific representation.  NUM_OFFSETS is the number of
-   elements present in OFFSETS->offsets.  If OFFSETS is non-zero, we
-   assume this is the proper table the call to sym_offsets described
-   above would produce.  Instead of calling sym_offsets, we just dump
-   it right into objfile->section_offsets.  (When we're re-reading
-   symbols from an objfile, we don't have the original load address
-   list any more; all we have is the section offset table.)  If
-   OFFSETS is non-zero, ADDRS must be zero.
 
    ADD_FLAGS encodes verbosity level, whether this is main symbol or
    an extra symbol file such as dynamically loaded code, and wether
@@ -932,16 +921,12 @@ init_entry_point_info (struct objfile *o
 static void
 syms_from_objfile_1 (struct objfile *objfile,
 		     struct section_addr_info *addrs,
-		     const struct section_offsets *offsets,
-		     int num_offsets,
 		     int add_flags)
 {
   struct section_addr_info *local_addr = NULL;
   struct cleanup *old_chain;
   const int mainline = add_flags & SYMFILE_MAINLINE;
 
-  gdb_assert (! (addrs && offsets));
-
   objfile->sf = find_sym_fns (objfile->obfd);
 
   if (objfile->sf == NULL)
@@ -962,18 +947,16 @@ syms_from_objfile_1 (struct objfile *obj
      if an error occurs during symbol reading.  */
   old_chain = make_cleanup_free_objfile (objfile);
 
-  /* If ADDRS and OFFSETS are both NULL, put together a dummy address
-     list.  We now establish the convention that an addr of zero means
+  /* If ADDRS is NULL, put together a dummy address list.
+     We now establish the convention that an addr of zero means
      no load address was specified.  */
-  if (! addrs && ! offsets)
+  if (! addrs)
     {
       local_addr = alloc_section_addr_info (1);
       make_cleanup (xfree, local_addr);
       addrs = local_addr;
     }
 
-  /* Now either addrs or offsets is non-zero.  */
-
   if (mainline)
     {
       /* We will modify the main symbol table, make sure that all its users
@@ -1002,7 +985,7 @@ syms_from_objfile_1 (struct objfile *obj
 
      We no longer warn if the lowest section is not a text segment (as
      happens for the PA64 port.  */
-  if (addrs && addrs->num_sections > 0)
+  if (addrs->num_sections > 0)
     addr_info_make_relative (addrs, objfile->obfd);
 
   /* Initialize symbol reading routines for this objfile, allow complaints to
@@ -1012,21 +995,7 @@ syms_from_objfile_1 (struct objfile *obj
   (*objfile->sf->sym_init) (objfile);
   clear_complaints (&symfile_complaints, 1, add_flags & SYMFILE_VERBOSE);
 
-  if (addrs)
-    (*objfile->sf->sym_offsets) (objfile, addrs);
-  else
-    {
-      size_t size = SIZEOF_N_SECTION_OFFSETS (num_offsets);
-
-      /* Just copy in the offset table directly as given to us.  */
-      objfile->num_sections = num_offsets;
-      objfile->section_offsets
-        = ((struct section_offsets *)
-           obstack_alloc (&objfile->objfile_obstack, size));
-      memcpy (objfile->section_offsets, offsets, size);
-
-      init_objfile_sect_indices (objfile);
-    }
+  (*objfile->sf->sym_offsets) (objfile, addrs);
 
   read_symbols (objfile, add_flags);
 
@@ -1039,14 +1008,12 @@ syms_from_objfile_1 (struct objfile *obj
 /* Same as syms_from_objfile_1, but also initializes the objfile
    entry-point info.  */
 
-void
+static void
 syms_from_objfile (struct objfile *objfile,
 		   struct section_addr_info *addrs,
-		   const struct section_offsets *offsets,
-		   int num_offsets,
 		   int add_flags)
 {
-  syms_from_objfile_1 (objfile, addrs, offsets, num_offsets, add_flags);
+  syms_from_objfile_1 (objfile, addrs, add_flags);
   init_entry_point_info (objfile);
 }
 
@@ -1085,8 +1052,7 @@ new_symfile_objfile (struct objfile *obj
    ADD_FLAGS encodes verbosity, whether this is main symbol file or
    extra, such as dynamically loaded code, and what to do with breakpoins.
 
-   ADDRS, OFFSETS, and NUM_OFFSETS are as described for
-   syms_from_objfile, above.
+   ADDRS is as described for syms_from_objfile_1, above.
    ADDRS is ignored when SYMFILE_MAINLINE bit is set in ADD_FLAGS.
 
    PARENT is the original objfile if ABFD is a separate debug info file.
@@ -1096,12 +1062,9 @@ new_symfile_objfile (struct objfile *obj
    Upon failure, jumps back to command level (never returns).  */
 
 static struct objfile *
-symbol_file_add_with_addrs_or_offsets (bfd *abfd,
-                                       int add_flags,
-                                       struct section_addr_info *addrs,
-                                       const struct section_offsets *offsets,
-                                       int num_offsets,
-                                       int flags, struct objfile *parent)
+symbol_file_add_with_addrs (bfd *abfd, int add_flags,
+			    struct section_addr_info *addrs,
+			    int flags, struct objfile *parent)
 {
   struct objfile *objfile;
   const char *name = bfd_get_filename (abfd);
@@ -1145,8 +1108,7 @@ symbol_file_add_with_addrs_or_offsets (b
 	  gdb_flush (gdb_stdout);
 	}
     }
-  syms_from_objfile (objfile, addrs, offsets, num_offsets,
-		     add_flags);
+  syms_from_objfile (objfile, addrs, add_flags);
 
   /* We now have at least a partial symbol table.  Check to see if the
      user requested that all symbols be read on initial access via either
@@ -1215,9 +1177,8 @@ symbol_file_add_separate (bfd *bfd, int 
   sap = build_section_addr_info_from_objfile (objfile);
   my_cleanup = make_cleanup_free_section_addr_info (sap);
 
-  new_objfile = symbol_file_add_with_addrs_or_offsets
-    (bfd, symfile_flags,
-     sap, NULL, 0,
+  new_objfile = symbol_file_add_with_addrs
+    (bfd, symfile_flags, sap,
      objfile->flags & (OBJF_REORDERED | OBJF_SHARED | OBJF_READNOW
 		       | OBJF_USERLOADED),
      objfile);
@@ -1228,21 +1189,18 @@ symbol_file_add_separate (bfd *bfd, int 
 /* Process the symbol file ABFD, as either the main file or as a
    dynamically loaded file.
 
-   See symbol_file_add_with_addrs_or_offsets's comments for
-   details.  */
+   See symbol_file_add_with_addrs's comments for details.  */
 struct objfile *
 symbol_file_add_from_bfd (bfd *abfd, int add_flags,
                           struct section_addr_info *addrs,
                           int flags, struct objfile *parent)
 {
-  return symbol_file_add_with_addrs_or_offsets (abfd, add_flags, addrs, 0, 0,
-                                                flags, parent);
+  return symbol_file_add_with_addrs (abfd, add_flags, addrs, flags, parent);
 }
 
 
 /* Process a symbol file, as either the main file or as a dynamically
-   loaded file.  See symbol_file_add_with_addrs_or_offsets's comments
-   for details.  */
+   loaded file.  See symbol_file_add_with_addrs's comments for details.  */
 struct objfile *
 symbol_file_add (char *name, int add_flags, struct section_addr_info *addrs,
 		 int flags)
Index: symfile.h
===================================================================
RCS file: /cvs/src/src/gdb/symfile.h,v
retrieving revision 1.126
diff -u -p -r1.126 symfile.h
--- symfile.h	6 May 2013 19:15:17 -0000	1.126
+++ symfile.h	6 May 2013 20:21:45 -0000
@@ -453,7 +453,7 @@ extern struct symtab *allocate_symtab (c
 extern void add_symtab_fns (const struct sym_fns *);
 
 /* This enum encodes bit-flags passed as ADD_FLAGS parameter to
-   syms_from_objfile, symbol_file_add, etc.  */
+   symbol_file_add, etc.  */
 
 enum symfile_add_flags
   {
@@ -472,10 +472,6 @@ enum symfile_add_flags
     SYMFILE_NO_READ = 1 << 4
   };
 
-extern void syms_from_objfile (struct objfile *,
-			       struct section_addr_info *,
-			       const struct section_offsets *, int, int);
-
 extern void new_symfile_objfile (struct objfile *, int);
 
 extern struct objfile *symbol_file_add (char *, int,


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]