public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Remove quick_symbol_functions::relocated
@ 2022-10-20 20:12 Tom Tromey
  2022-12-19 15:05 ` Tom Tromey
  0 siblings, 1 reply; 2+ messages in thread
From: Tom Tromey @ 2022-10-20 20:12 UTC (permalink / raw)
  To: gdb-patches; +Cc: Tom Tromey

quick_symbol_functions::relocated is only needed for psymtabs, and
there it is only needed for Rust.  However, because we've switched the
DWARF reader away from psymtabs, this means there's no longer a need
for this method at all.
---
 gdb/objfiles.c     |  4 ---
 gdb/psympriv.h     | 15 +++-------
 gdb/psymtab.c      | 69 ----------------------------------------------
 gdb/quick-symbol.h |  7 -----
 4 files changed, 4 insertions(+), 91 deletions(-)

diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 09aba0f80f0..ffdb36ab633 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -667,10 +667,6 @@ objfile_relocate1 (struct objfile *objfile,
       }
   }
 
-  /* Notify the quick symbol object.  */
-  for (const auto &iter : objfile->qf)
-    iter->relocated ();
-
   /* Relocate isolated symbols.  */
   {
     struct symbol *iter;
diff --git a/gdb/psympriv.h b/gdb/psympriv.h
index 61fb5c0f6c1..8dc79e92ca6 100644
--- a/gdb/psympriv.h
+++ b/gdb/psympriv.h
@@ -536,17 +536,15 @@ struct psymbol_functions : public quick_symbol_functions
      CORE_ADDR pc, struct obj_section *section, int warn_if_readin) override;
 
   struct compunit_symtab *find_compunit_symtab_by_address
-    (struct objfile *objfile, CORE_ADDR address) override;
+    (struct objfile *objfile, CORE_ADDR address) override
+  {
+    return nullptr;
+  }
 
   void map_symbol_filenames (struct objfile *objfile,
 			     gdb::function_view<symbol_filename_ftype> fun,
 			     bool need_fullname) override;
 
-  void relocated () override
-  {
-    m_psymbol_map.clear ();
-  }
-
   /* Return a range adapter for the psymtabs.  */
   psymtab_storage::partial_symtab_range partial_symbols
        (struct objfile *objfile);
@@ -588,11 +586,6 @@ struct psymbol_functions : public quick_symbol_functions
 
   /* Storage for the partial symbols.  */
   std::shared_ptr<psymtab_storage> m_partial_symtabs;
-
-  /* Map symbol addresses to the partial symtab that defines the
-     object at that address.  */
-
-  std::vector<std::pair<CORE_ADDR, partial_symtab *>> m_psymbol_map;
 };
 
 #endif /* PSYMPRIV_H */
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 424e611b87b..35832ae71da 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1103,75 +1103,6 @@ psymbol_functions::has_unexpanded_symtabs (struct objfile *objfile)
   return false;
 }
 
-/* Helper function for psym_find_compunit_symtab_by_address that fills
-   in m_psymbol_map for a given range of psymbols.  */
-
-void
-psymbol_functions::fill_psymbol_map
-     (struct objfile *objfile,
-      struct partial_symtab *psymtab,
-      std::set<CORE_ADDR> *seen_addrs,
-      const std::vector<partial_symbol *> &symbols)
-{
-  for (partial_symbol *psym : symbols)
-    {
-      if (psym->aclass == LOC_STATIC)
-	{
-	  CORE_ADDR addr = psym->address (objfile);
-	  if (seen_addrs->find (addr) == seen_addrs->end ())
-	    {
-	      seen_addrs->insert (addr);
-	      m_psymbol_map.emplace_back (addr, psymtab);
-	    }
-	}
-    }
-}
-
-/* See find_compunit_symtab_by_address in quick_symbol_functions, in
-   symfile.h.  */
-
-compunit_symtab *
-psymbol_functions::find_compunit_symtab_by_address (struct objfile *objfile,
-						    CORE_ADDR address)
-{
-  if (m_psymbol_map.empty ())
-    {
-      std::set<CORE_ADDR> seen_addrs;
-
-      for (partial_symtab *pst : partial_symbols (objfile))
-	{
-	  fill_psymbol_map (objfile, pst,
-			    &seen_addrs,
-			    pst->global_psymbols);
-	  fill_psymbol_map (objfile, pst,
-			    &seen_addrs,
-			    pst->static_psymbols);
-	}
-
-      m_psymbol_map.shrink_to_fit ();
-
-      std::sort (m_psymbol_map.begin (), m_psymbol_map.end (),
-		 [] (const std::pair<CORE_ADDR, partial_symtab *> &a,
-		     const std::pair<CORE_ADDR, partial_symtab *> &b)
-		 {
-		   return a.first < b.first;
-		 });
-    }
-
-  auto iter = std::lower_bound
-    (m_psymbol_map.begin (), m_psymbol_map.end (), address,
-     [] (const std::pair<CORE_ADDR, partial_symtab *> &a,
-	 CORE_ADDR b)
-     {
-       return a.first < b;
-     });
-
-  if (iter == m_psymbol_map.end () || iter->first != address)
-    return NULL;
-
-  return psymtab_to_symtab (objfile, iter->second);
-}
-
 \f
 
 /* Partially fill a partial symtab.  It will be completely filled at
diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h
index c55989e0a2c..f4120b0a7a4 100644
--- a/gdb/quick-symbol.h
+++ b/gdb/quick-symbol.h
@@ -212,13 +212,6 @@ struct quick_symbol_functions
 	gdb::function_view<symbol_filename_ftype> fun,
 	bool need_fullname) = 0;
 
-  /* This is called when the objfile is relocated.  It can be used to
-     clean up any internal caches.  */
-  virtual void relocated ()
-  {
-    /* Do nothing.  */
-  }
-
   /* Return true if this class can lazily read the symbols.  This may
      only return true if there are in fact symbols to be read, because
      this is used in the implementation of 'has_partial_symbols'.  */
-- 
2.34.3


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Remove quick_symbol_functions::relocated
  2022-10-20 20:12 [PATCH] Remove quick_symbol_functions::relocated Tom Tromey
@ 2022-12-19 15:05 ` Tom Tromey
  0 siblings, 0 replies; 2+ messages in thread
From: Tom Tromey @ 2022-12-19 15:05 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

>>>>> "Tom" == Tom Tromey <tom@tromey.com> writes:

Tom> quick_symbol_functions::relocated is only needed for psymtabs, and
Tom> there it is only needed for Rust.  However, because we've switched the
Tom> DWARF reader away from psymtabs, this means there's no longer a need
Tom> for this method at all.

I'm checking this in on trunk now.

Tom

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-19 15:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-20 20:12 [PATCH] Remove quick_symbol_functions::relocated Tom Tromey
2022-12-19 15:05 ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).