[binutils-gdb] gprofng: remove ElfReloc class and unused functions and declarations

Vladimir Mezentsev vmezents@sourceware.org
Mon Jul 7 21:06:19 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2f206f4b8ae24249a51c650fce7bbf204f677399

commit 2f206f4b8ae24249a51c650fce7bbf204f677399
Author: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
Date:   Fri Jul 4 14:49:18 2025 -0700

    gprofng: remove ElfReloc class and unused functions and declarations
    
    class ElfReloc is not used after we started use libbfd.
    Removed ElfReloc and other unused declarations.
    
    gprofng/ChangeLog
    2025-07-03  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
    
            * src/Disasm.cc: Remove unused functions and variables.
            * src/Disasm.h: Likewise.
            * src/Dwarf.cc: Likewise.
            * src/DwarfLib.cc: Likewise.
            * src/DwarfLib.h: Likewise.
            * src/Elf.cc: Likewise.
            * src/Elf.h: Likewise.
            * src/Stabs.cc: Likewise.
            * src/Stabs.h: Likewise.

Diff:
---
 gprofng/src/Disasm.cc   |  15 ---
 gprofng/src/Disasm.h    |   3 +-
 gprofng/src/Dwarf.cc    |   7 --
 gprofng/src/DwarfLib.cc | 266 +-----------------------------------------------
 gprofng/src/DwarfLib.h  |   3 -
 gprofng/src/Elf.cc      | 115 +--------------------
 gprofng/src/Elf.h       |  30 +-----
 gprofng/src/Stabs.cc    |  63 ------------
 gprofng/src/Stabs.h     |   2 -
 9 files changed, 6 insertions(+), 498 deletions(-)

diff --git a/gprofng/src/Disasm.cc b/gprofng/src/Disasm.cc
index 42fb7776027..348718b53e2 100644
--- a/gprofng/src/Disasm.cc
+++ b/gprofng/src/Disasm.cc
@@ -50,19 +50,6 @@ struct DisContext
 
 static const int MAX_DISASM_STR     = 2048;
 
-Disasm::Disasm (char *fname)
-{
-  dwin = NULL;
-  dis_str = NULL;
-  need_swap_endian = false;
-  my_stabs = Stabs::NewStabs (fname, fname);
-  if (my_stabs == NULL)
-    return;
-  stabs = my_stabs;
-  platform = stabs->get_platform ();
-  disasm_open ();
-}
-
 Disasm::Disasm (Platform_t _platform, Stabs *_stabs)
 {
   dwin = NULL;
@@ -70,7 +57,6 @@ Disasm::Disasm (Platform_t _platform, Stabs *_stabs)
   need_swap_endian = false;
   stabs = _stabs;
   platform = _platform;
-  my_stabs = NULL;
   disasm_open ();
 }
 
@@ -263,7 +249,6 @@ Disasm::disasm_open ()
 
 Disasm::~Disasm ()
 {
-  delete my_stabs;
   delete dwin;
   delete dis_str;
 }
diff --git a/gprofng/src/Disasm.h b/gprofng/src/Disasm.h
index 0326b5c9c11..3d7159d5256 100644
--- a/gprofng/src/Disasm.h
+++ b/gprofng/src/Disasm.h
@@ -31,7 +31,6 @@ enum Platform_t;
 class Disasm
 {
 public:
-  Disasm (char *fname);
   Disasm (Platform_t _platform, Stabs *_stabs);
   ~Disasm ();
   void remove_disasm_hndl (void *hndl);
@@ -59,7 +58,7 @@ private:
 
   disassemble_info dis_info;
   Data_window *dwin;
-  Stabs *stabs, *my_stabs;
+  Stabs *stabs;
   Platform_t platform;
   char addr_fmt[32];
   int hex_visible;
diff --git a/gprofng/src/Dwarf.cc b/gprofng/src/Dwarf.cc
index 858910992e7..a54cdb18d46 100644
--- a/gprofng/src/Dwarf.cc
+++ b/gprofng/src/Dwarf.cc
@@ -378,13 +378,6 @@ Dwarf::Dwarf (Stabs *_stabs)
       return;
     }
   debug_infoSec = dwrGetSec (NTXT (".debug_info"));
-  if (debug_infoSec)
-    {
-      debug_infoSec->reloc = ElfReloc::get_elf_reloc (elf, NTXT (".rela.debug_info"), NULL);
-      debug_infoSec->reloc = ElfReloc::get_elf_reloc (elf, NTXT (".rel.debug_info"), debug_infoSec->reloc);
-      if (debug_infoSec->reloc)
-	debug_infoSec->reloc->dump ();
-    }
   debug_abbrevSec = dwrGetSec (NTXT (".debug_abbrev"));
   debug_strSec = dwrGetSec (NTXT (".debug_str"));
   debug_lineSec = dwrGetSec (NTXT (".debug_line"));
diff --git a/gprofng/src/DwarfLib.cc b/gprofng/src/DwarfLib.cc
index 79be8cf58c5..9e116581b1f 100644
--- a/gprofng/src/DwarfLib.cc
+++ b/gprofng/src/DwarfLib.cc
@@ -34,31 +34,6 @@
 #define NO_STMT_LIST ((uint64_t) -1)
 #define CASE_S(x)   case x: s = (char *) #x; break
 
-static char *
-gelf_st_type2str (int type)
-{
-  static char buf[128];
-  char *s;
-  switch (type)
-    {
-      CASE_S (STT_NOTYPE);
-      CASE_S (STT_OBJECT);
-      CASE_S (STT_FUNC);
-      CASE_S (STT_SECTION);
-      CASE_S (STT_FILE);
-      CASE_S (STT_COMMON);
-      CASE_S (STT_TLS);
-      //    CASE_S(STT_NUM);
-      CASE_S (STT_LOPROC);
-      CASE_S (STT_HIPROC);
-    default: s = NTXT ("???");
-      break;
-    }
-  snprintf (buf, sizeof (buf), NTXT ("%s(%d)"), s, type);
-  buf[sizeof (buf) - 1] = 0;
-  return buf;
-}
-
 static char *
 special_opcode2str (int opcode)
 {
@@ -167,233 +142,6 @@ get_string (DwrSec *sec, uint64_t off)
 }
 
   
-//////////////////////////////////////////////////////////
-//  class ElfReloc
-
-ElfReloc::ElfReloc (Elf *_elf)
-{
-  elf = _elf;
-  reloc = NULL;
-  cur_reloc_ind = 0;
-}
-
-ElfReloc::~ElfReloc ()
-{
-  if (reloc)
-    {
-      reloc->destroy ();
-      delete reloc;
-    }
-}
-
-void
-ElfReloc::dump_rela_debug_sec (int sec)
-{
-  if (!DUMP_RELA_SEC)
-    return;
-  Elf_Internal_Shdr *shdr = elf->get_shdr (sec);
-  if (shdr == NULL)
-    return;
-
-  Elf_Data *data = elf->elf_getdata (sec);
-  if (data == NULL)
-    return;
-
-  uint64_t ScnSize = data->d_size;
-  uint64_t EntSize = shdr->sh_entsize;
-  if (ScnSize == 0 || EntSize == 0)
-    return;
-
-  Elf_Internal_Rela rela;
-  int n, cnt = (int) (ScnSize / EntSize);
-
-  char *sec_name = elf->get_sec_name (sec);
-  if (sec_name == NULL) // It can not be, but let's check
-    return;
-  Dprintf (DUMP_RELA_SEC,
-	   "======= DwarfLib::dump_rela_debug_sec  Section:%2d  '%s'\n",
-	   sec, sec_name);
-  Dprintf (DUMP_RELA_SEC,
-	   " N |addend|   offset   |       r_info      |    stt_type   |\n");
-  for (n = 0; n < cnt; n++)
-    {
-      if (strncmp (sec_name, NTXT (".rela."), 6) == 0)
-	elf->elf_getrela (data, n, &rela);
-      else
-	{
-	  elf->elf_getrel (data, n, &rela);
-	  rela.r_addend = 0;
-	}
-      int ndx = (int) GELF_R_SYM (rela.r_info);
-      Elf_Internal_Shdr *secHdr;
-      Elf_Internal_Sym sym;
-      asymbol *asym;
-      asym = elf->elf_getsym (ndx, &sym, false);
-      Dprintf (DUMP_RELA_SEC, NTXT ("%3d:%5d |%11lld |0x%016llx | %-15s|"),
-	       n, (int) rela.r_addend,
-	       (long long) rela.r_offset, (long long) rela.r_info,
-	       gelf_st_type2str ((int) GELF_ST_TYPE (sym.st_info)));
-      switch (GELF_ST_TYPE (sym.st_info))
-	{
-	case STT_FUNC:
-	case STT_OBJECT:
-	case STT_NOTYPE:
-	  Dprintf (DUMP_RELA_SEC, NTXT (" img_offset=0x%llx"),
-		   (long long) (bfd_asymbol_value (asym)));
-	  Dprintf (DUMP_RELA_SEC, NTXT ("  %s"),  bfd_asymbol_name (asym));
-	  break;
-	case STT_SECTION:
-	  secHdr = elf->get_shdr (sym.st_shndx);
-	  if (secHdr)
-	    {
-	      Dprintf (DUMP_RELA_SEC, NTXT ("       value=0x%016llx (%lld)"),
-		       (long long) (secHdr->sh_offset + rela.r_addend),
-		       (long long) (secHdr->sh_offset + rela.r_addend));
-	    }
-	  break;
-	default:
-	  break;
-	}
-      Dprintf (DUMP_RELA_SEC, NTXT ("\n"));
-    }
-  Dprintf (DUMP_RELA_SEC, NTXT ("\n"));
-}
-
-void
-ElfReloc::dump ()
-{
-  if (!DUMP_ELF_RELOC || (reloc == NULL) || (reloc->size () == 0))
-    return;
-  Dprintf (DUMP_ELF_RELOC, NTXT ("======= ElfReloc::dump\n"));
-  Dprintf (DUMP_ELF_RELOC, NTXT (" N |   offset   |    value   | STT_TYPE\n"));
-  for (int i = 0; i < reloc->size (); i++)
-    {
-      Sreloc *srlc = reloc->fetch (i);
-      Dprintf (DUMP_ELF_RELOC, NTXT ("%3d:%11lld |%11lld | %s\n"),
-	       i, (long long) srlc->offset, (long long) srlc->value,
-	       gelf_st_type2str (srlc->stt_type));
-    }
-  Dprintf (DUMP_ELF_RELOC, NTXT ("\n"));
-}
-
-static int
-DwrRelocOffsetCmp (const void *a, const void *b)
-{
-  ElfReloc::Sreloc *item1 = *((ElfReloc::Sreloc **) a);
-  ElfReloc::Sreloc *item2 = *((ElfReloc::Sreloc **) b);
-  return item1->offset < item2->offset ? -1 :
-	 item1->offset == item2->offset ? 0 : 1;
-}
-
-ElfReloc *
-ElfReloc::get_elf_reloc (Elf *elfp, char *sec_name, ElfReloc *rlc)
-{
-  int et = elfp->elf_getehdr ()->e_type;
-  if (et == ET_EXEC || et == ET_DYN)
-    return rlc;
-  int sec = elfp->elf_get_sec_num (sec_name);
-  if (sec == 0)
-    return rlc;
-  Elf_Internal_Shdr *shdr = elfp->get_shdr (sec);
-  if (shdr == NULL || shdr->sh_entsize == 0)
-    return rlc;
-
-  Elf_Data *data = elfp->elf_getdata (sec);
-  if (data == NULL || data->d_size == 0)
-    return rlc;
-
-  int cnt = (int) (data->d_size / shdr->sh_entsize);
-  Vector<Sreloc *> *vp = NULL;
-
-  for (int n = 0; n < cnt; n++)
-    {
-      Elf_Internal_Shdr *secHdr;
-      Sreloc *srlc;
-      Elf_Internal_Rela rela;
-      if (strncmp (sec_name, NTXT (".rela."), 6) == 0)
-	elfp->elf_getrela (data, n, &rela);
-      else
-	{
-	  elfp->elf_getrel (data, n, &rela);
-	  rela.r_addend = 0;
-	}
-      int ndx = (int) GELF_R_SYM (rela.r_info);
-      Elf_Internal_Sym sym;
-      elfp->elf_getsym (ndx, &sym, false);
-
-      srlc = new Sreloc;
-      srlc->offset = rela.r_offset;
-      srlc->value = 0;
-      srlc->stt_type = (int) GELF_ST_TYPE (sym.st_info);
-      switch (GELF_ST_TYPE (sym.st_info))
-	{
-	case STT_FUNC:
-	  secHdr = elfp->get_shdr (sym.st_shndx);
-	  if (secHdr)
-	    srlc->value = secHdr->sh_offset + sym.st_value;
-	  break;
-	case STT_OBJECT:
-	case STT_NOTYPE:
-	  secHdr = elfp->get_shdr (shdr->sh_info);
-	  if (secHdr)
-	    {
-	      srlc->offset = rela.r_info;
-	      srlc->value = secHdr->sh_offset + rela.r_addend;
-	    }
-	  break;
-	case STT_SECTION:
-	  secHdr = elfp->get_shdr (sym.st_shndx);
-	  if (secHdr)
-	    srlc->value = rela.r_addend;
-	  break;
-	default:
-	  srlc->value = 0;
-	  break;
-	}
-      if (rlc == NULL)
-	{
-	  rlc = new ElfReloc (elfp);
-	  vp = rlc->reloc;
-	}
-      if (vp == NULL)
-	{
-	  vp = new Vector<Sreloc*>;
-	  rlc->reloc = vp;
-	}
-      vp->append (srlc);
-    }
-  if (vp)
-    vp->sort (DwrRelocOffsetCmp);
-  if (rlc)
-    {
-      rlc->dump_rela_debug_sec (sec);
-      rlc->dump ();
-    }
-  return rlc;
-}
-
-long long
-ElfReloc::get_reloc_addr (long long offset)
-{
-  Sreloc *srlc;
-  int i = cur_reloc_ind - 1;
-  if (i >= 0 && i < reloc->size ())
-    {
-      srlc = reloc->fetch (i);
-      if (srlc->offset > offset)  // need to reset
-	cur_reloc_ind = 0;
-    }
-  for (; cur_reloc_ind < reloc->size (); cur_reloc_ind++)
-    {
-      srlc = reloc->fetch (cur_reloc_ind);
-      if (srlc->offset == offset)
-	return srlc->value;
-      if (srlc->offset > offset)
-	return 0;
-    }
-  return 0;
-}
-
 DwrLocation *
 DwrCU::dwr_get_location (DwrSec *secp, DwrLocation *lp)
 {
@@ -1058,34 +806,28 @@ Dwr_Tag::dump ()
 
 DwrSec::DwrSec (unsigned char *_data, uint64_t _size, bool _need_swap_endian, bool _addr32)
 {
-  isCopy = false;
   data = _data;
   sizeSec = _size;
   size = (data ? _size : 0);
   offset = 0;
   fmt64 = false;
-  reloc = NULL;
   need_swap_endian = _need_swap_endian;
   addr32 = _addr32;
 }
 
 DwrSec::DwrSec (DwrSec *secp, uint64_t _offset)
 {
-  isCopy = true;
   data = secp->data;
   sizeSec = secp->sizeSec;
   size = secp->size;
   offset = _offset;
   fmt64 = secp->fmt64;
-  reloc = secp->reloc;
   need_swap_endian = secp->need_swap_endian;
   addr32 = secp->addr32;
 }
 
 DwrSec::~DwrSec ()
 {
-  if (!isCopy)
-    delete reloc;
 }
 
 bool
@@ -1213,17 +955,13 @@ DwrSec::GetLong ()
 uint64_t
 DwrSec::GetADDR_32 ()
 {
-  uint64_t res = reloc ? reloc->get_reloc_addr (offset) : 0;
-  res += Get_32 ();
-  return res;
+  return Get_32 ();
 }
 
 uint64_t
 DwrSec::GetADDR_64 ()
 {
-  uint64_t res = reloc ? reloc->get_reloc_addr (offset) : 0;
-  res += Get_64 ();
-  return res;
+  return Get_64 ();
 }
 
 uint64_t
diff --git a/gprofng/src/DwarfLib.h b/gprofng/src/DwarfLib.h
index 06b19b84213..49ecb41ff64 100644
--- a/gprofng/src/DwarfLib.h
+++ b/gprofng/src/DwarfLib.h
@@ -23,7 +23,6 @@
 
 #include "dwarf2.h"
 
-class ElfReloc;
 class Dwr_type;
 class Function;
 class Range;
@@ -76,7 +75,6 @@ public:
     return (uint32_t) GetULEB128 ();
   }
 
-  ElfReloc *reloc;
   uint64_t sizeSec;
   uint64_t size;
   uint64_t offset;
@@ -87,7 +85,6 @@ public:
   int segment_selector_size; // DWARF 5
 
 private:
-  bool isCopy;
   unsigned char *data;
   bool bounds_violation (uint64_t sz);
 };
diff --git a/gprofng/src/Elf.cc b/gprofng/src/Elf.cc
index f0fd1215a04..b90ad29dc5b 100644
--- a/gprofng/src/Elf.cc
+++ b/gprofng/src/Elf.cc
@@ -28,6 +28,7 @@
 #include "Map.h"
 #include "StringBuilder.h"
 #include "DbeFile.h"
+#include "DbeSession.h"
 
 typedef uint32_t Elf32_Word;
 typedef uint32_t Elf64_Word;
@@ -83,56 +84,6 @@ struct S_Elf64_Dyn
   } d_un;
 };
 
-
-// Symbol table
-typedef struct
-{
-  Elf32_Word st_name;
-  Elf32_Addr st_value;
-  Elf32_Word st_size;
-  unsigned char st_info;    /* bind, type: ELF_32_ST_... */
-  unsigned char st_other;
-  Elf32_Half st_shndx;      /* SHN_... */
-} Elf32_Sym;
-
-typedef struct
-{
-  Elf64_Word st_name;
-  unsigned char st_info;    /* bind, type: ELF_64_ST_... */
-  unsigned char st_other;
-  Elf64_Half st_shndx;      /* SHN_... */
-  Elf64_Addr st_value;
-  Elf64_Xword st_size;
-} Elf64_Sym;
-
-
-// Relocation
-typedef struct
-{
-  Elf32_Addr r_offset;
-  Elf32_Word r_info;        /* sym, type: ELF32_R_... */
-} Elf32_Rel;
-
-typedef struct
-{
-  Elf32_Addr r_offset;
-  Elf32_Word r_info;        /* sym, type: ELF32_R_... */
-  Elf32_Sword r_addend;
-} Elf32_Rela;
-
-typedef struct
-{
-  Elf64_Addr r_offset;
-  Elf64_Xword r_info;       /* sym, type: ELF64_R_... */
-} Elf64_Rel;
-
-typedef struct
-{
-  Elf64_Addr r_offset;
-  Elf64_Xword r_info;       /* sym, type: ELF64_R_... */
-  Elf64_Sxword r_addend;
-} Elf64_Rela;
-
 int Elf::bfd_status = -1;
 
 void
@@ -196,23 +147,13 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename)
     }
   status = ELF_ERR_NONE;
 
-#if ARCH(SPARC)
-  need_swap_endian = is_Intel ();
-#else
-  need_swap_endian = !is_Intel ();
-#endif
-
+  need_swap_endian = DbeSession::is_bigendian () != bfd_big_endian (abfd);
   analyzerInfo = 0;
-  SUNW_ldynsym = 0;
-  gnuLink = 0;
   stab = 0;
-  stabStr = 0;
   stabIndex = 0;
   stabIndexStr = 0;
   stabExcl = 0;
   stabExclStr = 0;
-  symtab = 0;
-  dynsym = 0;
   info = 0;
   plt = 0;
   dwarf = false;
@@ -234,20 +175,12 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename)
 	stabExcl = sec;
       else if (streq (name, NTXT (".stab.exclstr")))
 	stabExclStr = sec;
-      else if (streq (name, NTXT (".gnu_debuglink")))
-	gnuLink = sec;
       else if (streq (name, NTXT (".__analyzer_info")))
 	analyzerInfo = sec;
       else if (streq (name, NTXT (".info")))
 	info = true;
       else if (streq (name, NTXT (".plt")))
 	plt = sec;
-      else if (streq (name, NTXT (".SUNW_ldynsym")))
-	SUNW_ldynsym = sec;
-      else if (streq (name, NTXT (".dynsym")))
-	dynsym = sec;
-      else if (streq (name, NTXT (".symtab")))
-	symtab = sec;
       else if (strncmp (name, NTXT (".debug"), 6) == 0)
 	dwarf = true;
     }
@@ -572,50 +505,6 @@ Elf::elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic)
   return asym;
 }
 
-Elf_Internal_Rela *
-Elf::elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst)
-{
-  if (dst == NULL || edta == NULL || edta->d_buf == NULL)
-    return NULL;
-  if (elf_getclass () == ELFCLASS32)
-    {
-      Elf32_Rel *rel = ((Elf32_Rel *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rel->r_offset);
-      dst->r_info = ELF64_R_INFO (ELF32_R_SYM (decode (rel->r_info)),
-				  ELF32_R_TYPE (decode (rel->r_info)));
-    }
-  else
-    {
-      Elf64_Rel *rel = ((Elf64_Rel *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rel->r_offset);
-      dst->r_info = decode (rel->r_info);
-    }
-  return dst;
-}
-
-Elf_Internal_Rela *
-Elf::elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst)
-{
-  if (dst == NULL || edta == NULL || edta->d_buf == NULL)
-    return NULL;
-  if (elf_getclass () == ELFCLASS32)
-    {
-      Elf32_Rela *rela = ((Elf32_Rela *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rela->r_offset);
-      dst->r_addend = decode (rela->r_addend);
-      dst->r_info = ELF64_R_INFO (ELF32_R_SYM (decode (rela->r_info)),
-				  ELF32_R_TYPE (decode (rela->r_info)));
-    }
-  else
-    {
-      Elf64_Rela *rela = ((Elf64_Rela *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rela->r_offset);
-      dst->r_addend = decode (rela->r_addend);
-      dst->r_info = decode (rela->r_info);
-    }
-  return dst;
-}
-
 Elf64_Ancillary *
 Elf::elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst)
 {
diff --git a/gprofng/src/Elf.h b/gprofng/src/Elf.h
index b324c394d16..66676702a85 100644
--- a/gprofng/src/Elf.h
+++ b/gprofng/src/Elf.h
@@ -35,10 +35,8 @@ class DbeFile;
 template <class ITEM> class Vector;
 template <typename Key_t, typename Value_t> class Map;
 
-#define GELF_R_SYM(info)    ((info)>>32)
 #define GELF_ST_TYPE(info)  ((info) & 0xf)
 #define GELF_ST_BIND(info)  ((info) >> 4)
-#define GELF_R_TYPE(info)   ((((uint64_t)(info))<<56)>>56)
 
 #define	SHF_SUNW_ABSENT		0x00200000	/* section data not present */
 #define	SEC_DECOMPRESSED	0x00400000	/* bfd allocated this memory */
@@ -94,8 +92,6 @@ public:
   char *elf_strptr (unsigned int sec, uint64_t off);
   long elf_getSymCount (bool is_dynamic);
   asymbol *elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic);
-  Elf_Internal_Rela *elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst);
-  Elf_Internal_Rela *elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst);
   Elf64_Ancillary *elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst);
   Elf *find_ancillary_files (char *lo_name); // read the .gnu_debuglink and .SUNW_ancillary seections
   const char *get_funcname_in_plt (uint64_t pc);
@@ -132,7 +128,7 @@ public:
   Elf *gnu_debug_file;
   DbeFile *dbeFile;
   Map<const char*, Symbol*> *elfSymbols;
-  unsigned int gnuLink, analyzerInfo, SUNW_ldynsym, stab, stabStr, symtab, dynsym;
+  unsigned int analyzerInfo, stab, stabStr;
   unsigned int stabIndex, stabIndexStr, stabExcl, stabExclStr, info, plt;
   bool dwarf;
 
@@ -154,28 +150,4 @@ protected:
   Vector <asymbol *> *synthsym;
 };
 
-
-class ElfReloc
-{
-public:
-  struct Sreloc
-  {
-    long long offset;
-    long long value;
-    int stt_type;
-  };
-
-  static ElfReloc *get_elf_reloc (Elf *elf, char *sec_name, ElfReloc *rlc);
-  ElfReloc (Elf *_elf);
-  ~ElfReloc ();
-  long long get_reloc_addr (long long offset);
-  void dump ();
-  void dump_rela_debug_sec (int sec);
-
-private:
-  Elf *elf;
-  Vector<Sreloc *> *reloc;
-  int cur_reloc_ind;
-};
-
 #endif
diff --git a/gprofng/src/Stabs.cc b/gprofng/src/Stabs.cc
index c6d6473460e..53f7ef1c3df 100644
--- a/gprofng/src/Stabs.cc
+++ b/gprofng/src/Stabs.cc
@@ -163,18 +163,6 @@ Stabs::removeDupSyms ()
   SymLst->truncate (last);
 }
 
-Stabs *
-Stabs::NewStabs (char *_path, char *lo_name)
-{
-  Stabs *stabs = new Stabs (_path, lo_name);
-  if (stabs->status != Stabs::DBGD_ERR_NONE)
-    {
-      delete stabs;
-      return NULL;
-    }
-  return stabs;
-}
-
 Stabs::Stabs (char *_path, char *_lo_name)
 {
   path = dbe_strdup (_path);
@@ -2131,57 +2119,6 @@ Stabs::append_Function (Module *module, char *fname)
   return func;
 }
 
-Function *
-Stabs::append_Function (Module *module, char *linkerName, uint64_t pc)
-{
-  Dprintf (DEBUG_STABS, NTXT ("Stabs::append_Function: module=%s linkerName=%s pc=0x%llx\n"),
-	   STR (module->get_name ()), STR (linkerName), (unsigned long long) pc);
-  long i;
-  Symbol *sitem = NULL, *sp;
-  Function *func;
-  sp = new Symbol;
-  if (pc)
-    {
-      sp->value = pc;
-      i = SymLst->bisearch (0, -1, &sp, SymFindCmp);
-      if (i != -1)
-	sitem = SymLst->fetch (i);
-    }
-
-  if (!sitem && linkerName)
-    {
-      if (SymLstByName == NULL)
-	{
-	  SymLstByName = SymLst->copy ();
-	  SymLstByName->sort (SymNameCmp);
-	}
-      sp->name = linkerName;
-      i = SymLstByName->bisearch (0, -1, &sp, SymNameCmp);
-      sp->name = NULL;
-      if (i != -1)
-	sitem = SymLstByName->fetch (i);
-    }
-  delete sp;
-
-  if (!sitem)
-    return NULL;
-  if (sitem->alias)
-    sitem = sitem->alias;
-  if (sitem->func)
-    return sitem->func;
-
-  sitem->func = func = dbeSession->createFunction ();
-  func->img_fname = path;
-  func->img_offset = sitem->img_offset;
-  func->save_addr = sitem->save;
-  func->size = sitem->size;
-  func->module = module;
-  func->set_name (sitem->name); //XXXX ?? Now call it to set obj->name
-  module->functions->append (func);
-  module->loadobject->functions->append (func);
-  return func;
-}// Stabs::append_Function
-
 Dwarf *
 Stabs::openDwarf ()
 {
diff --git a/gprofng/src/Stabs.h b/gprofng/src/Stabs.h
index c8da278d0ac..f0e162b8fa6 100644
--- a/gprofng/src/Stabs.h
+++ b/gprofng/src/Stabs.h
@@ -76,7 +76,6 @@ class Stabs {
 	DBGD_ERR_CHK_SUM
     };
 
-    static Stabs *NewStabs(char *_path, char *lo_name);
     Stabs(char *_path, char *_lo_name);
     ~Stabs();
 
@@ -100,7 +99,6 @@ class Stabs {
     static Function *find_func(char *fname, Vector<Function*> *functions, bool fortran, bool inner_names=false);
     Module	*append_Module(LoadObject *lo, char *name, int lastMod = 0);
     Function	*append_Function(Module *module, char *fname);
-    Function	*append_Function(Module *module, char *linkerName, uint64_t pc);
     Function	*map_PC_to_func(uint64_t pc, uint64_t &low_pc, Vector<Function*> *functions);
     char		*path;			// path to the object file
     char                *lo_name;       // User name of load object


More information about the Binutils-cvs mailing list