disapproval of revision c1decd790dc3a6ab55ecfc0ace23dd93f55c01ff
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 006da6d..db069c9 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,14 +1,3 @@
-2005-09-07  Roland McGrath  <roland@redhat.com>
-
-	* dwarf_entry_breakpoints.c: New file.
-	* Makefile.am (libdw_a_SOURCES): Add it.
-	* libdw.h: Declare dwarf_entry_breakpoints.
-
-	* dwarf_entrypc.c: New file.
-	* Makefile.am (libdw_a_SOURCES): Add it.
-	* libdw.h: Declare dwarf_entrypc.
-	* libdwP.h: Add INTDECL.
-
 2005-08-28  Ulrich Drepper  <drepper@redhat.com>
 
 	* Makefile.am: Use $(LINK) not $(CC) when creating DSO.
diff --git a/libdw/Makefile.am b/libdw/Makefile.am
index 4121b0f..a35f5dc 100644
--- a/libdw/Makefile.am
+++ b/libdw/Makefile.am
@@ -42,7 +42,7 @@
 		  dwarf_attr_integrate.c dwarf_hasattr_integrate.c \
 		  dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \
 		  dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \
-		  dwarf_entrypc.c dwarf_haspc.c dwarf_highpc.c \
+		  dwarf_haspc.c dwarf_highpc.c \
 		  dwarf_formref.c dwarf_formref_die.c dwarf_siblingof.c \
 		  dwarf_dieoffset.c dwarf_cuoffset.c dwarf_hasattr.c \
 		  dwarf_hasform.c dwarf_whatform.c dwarf_whatattr.c \
@@ -68,8 +68,8 @@
 		  dwarf_func_line.c dwarf_func_col.c dwarf_func_die.c \
 		  dwarf_func_inline.c dwarf_getsrc_file.c \
 		  libdw_findcu.c libdw_form.c libdw_alloc.c memory-access.c \
-		  libdw_visit_scopes.c \
-		  dwarf_entry_breakpoints.c
+		  libdw_visit_scopes.c
+
 
 if !MUDFLAP
 libdw_pic_a_SOURCES =
diff --git a/libdw/dwarf_entry_breakpoints.c b/libdw/dwarf_entry_breakpoints.c
deleted file mode 100644
index a8fb294..0000000
--- a/libdw/dwarf_entry_breakpoints.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Find entry breakpoint locations for a function.
-   Copyright (C) 2005 Red Hat, Inc.
-
-   This program is Open Source software; you can redistribute it and/or
-   modify it under the terms of the Open Software License version 1.0 as
-   published by the Open Source Initiative.
-
-   You should have received a copy of the Open Software License along
-   with this program; if not, you may obtain a copy of the Open Software
-   License version 1.0 from http://www.opensource.org/licenses/osl.php or
-   by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-   3001 King Ranch Road, Ukiah, CA 95482.   */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "libdwP.h"
-#include <dwarf.h>
-#include <stdlib.h>
-
-
-int
-dwarf_entry_breakpoints (die, bkpts)
-     Dwarf_Die *die;
-     Dwarf_Addr **bkpts;
-{
-  int nbkpts = 0;
-  *bkpts = NULL;
-
-  /* Add one breakpoint location to the result vector.  */
-  inline int add_bkpt (Dwarf_Addr pc)
-    {
-      Dwarf_Addr *newlist = realloc (*bkpts, ++nbkpts * sizeof newlist[0]);
-      if (newlist == NULL)
-	{
-	  free (*bkpts);
-	  *bkpts = NULL;
-	  __libdw_seterrno (DWARF_E_NOMEM);
-	  return -1;
-	}
-      newlist[nbkpts - 1] = pc;
-      *bkpts = newlist;
-      return nbkpts;
-    }
-
-  /* Fallback result, break at the entrypc/lowpc value.  */
-  inline int entrypc_bkpt (void)
-    {
-      Dwarf_Addr pc;
-      return INTUSE(dwarf_entrypc) (die, &pc) < 0 ? -1 : add_bkpt (pc);
-    }
-
-  /* Fetch the CU's line records to look for this DIE's addresses.  */
-  Dwarf_Die cudie =
-    {
-      .cu = die->cu,
-      .addr = ((char *) die->cu->dbg->sectiondata[IDX_debug_info]->d_buf
-	       + die->cu->start + 3 * die->cu->offset_size - 4 + 3),
-    };
-  Dwarf_Lines *lines;
-  size_t nlines;
-  if (INTUSE(dwarf_getsrclines) (&cudie, &lines, &nlines) < 0)
-    {
-      int error = INTUSE (dwarf_errno) ();
-      if (error == DWARF_E_NO_DEBUG_LINE)
-	return entrypc_bkpt ();
-      __libdw_seterrno (error);
-      return -1;
-    }
-
-  /* Search a contiguous PC range for prologue-end markers.
-     If DWARF, look for proper markers.
-     Failing that, if ADHOC, look for the ad hoc convention.  */
-  inline int search_range (Dwarf_Addr low, Dwarf_Addr high,
-			   bool dwarf, bool adhoc)
-    {
-      size_t l = 0, u = nlines;
-      while (l < u)
-	{
-	  size_t idx = (l + u) / 2;
-	  if (low < lines->info[idx].addr)
-	    u = idx;
-	  else
-	    {
-	      l = idx;
-	      if (low > lines->info[idx].addr)
-		{
-		  if (lines->info[idx].addr < high)
-		    break;
-		  ++l;
-		}
-	      else
-		break;
-	    }
-	}
-      if (l < u)
-	{
-	  if (dwarf)
-	    while (l < u && lines->info[l].addr < high)
-	      if (lines->info[l].prologue_end
-		  && add_bkpt (lines->info[l].addr) < 0)
-		return -1;
-	  if (adhoc && nbkpts == 0
-	      && l + 1 < nlines
-	      && lines->info[l + 1].line == lines->info[l].line
-	      && lines->info[l + 1].file == lines->info[l].file
-	      && lines->info[l + 1].column == lines->info[l].column)
-	    return add_bkpt (lines->info[l + 1].addr);
-	  return nbkpts;
-	}
-      __libdw_seterrno (DWARF_E_INVALID_DWARF);
-      return -1;
-    }
-
-  /* Most often there is a single contiguous PC range for the DIE.  */
-  Dwarf_Addr lowpc;
-  Dwarf_Addr highpc;
-  if (INTUSE(dwarf_lowpc) (die, &lowpc) == 0)
-    return (INTUSE(dwarf_highpc) (die, &highpc)
-	    ?: search_range (lowpc, highpc, true, true));
-
-
-  /* We have to look for a noncontiguous range.  */
-  Dwarf_Attribute attr_mem;
-  Dwarf_Attribute *attr = INTUSE(dwarf_attr) (die, DW_AT_ranges, &attr_mem);
-  if (attr == NULL)
-    return -1;
-
-  /* Must have the form data4 or data8 which act as an offset.  */
-  Dwarf_Word offset;
-  if (INTUSE(dwarf_formudata) (attr, &offset) != 0)
-    return -1;
-
-  const Elf_Data *d = die->cu->dbg->sectiondata[IDX_debug_ranges];
-  if (d == NULL)
-    {
-      __libdw_seterrno (DWARF_E_NO_DEBUG_RANGES);
-      return -1;
-    }
-
-  /* Fetch the CU's base address.  */
-  Dwarf_Addr base;
-  if (INTUSE(dwarf_lowpc) (&cudie, &base) != 0)
-    return -1;
-
-  /* Search each contiguous address range for DWARF prologue_end markers.  */
-  unsigned char *readp = d->d_buf + offset;
-  Dwarf_Addr begin;
-  Dwarf_Addr end;
-  lowpc = highpc = (Dwarf_Addr) -1l;
-  do
-    {
-    next:
-      if ((unsigned char *) d->d_buf + d->d_size - readp
-	  < die->cu->address_size * 2)
-	{
-	  __libdw_seterrno (DWARF_E_INVALID_DWARF);
-	  free (*bkpts);
-	  *bkpts = NULL;
-	  return -1;
-	}
-
-      if (die->cu->address_size == 8)
-	{
-	  begin = read_8ubyte_unaligned_inc (die->cu->dbg, readp);
-	  end = read_8ubyte_unaligned_inc (die->cu->dbg, readp);
-	}
-      else
-	{
-	  begin = (Dwarf_Sword) read_4sbyte_unaligned_inc (die->cu->dbg,
-							   readp);
-	  end = read_4ubyte_unaligned_inc (die->cu->dbg, readp);
-	}
-
-      if (begin == (Dwarf_Addr) -1l) /* Base address entry.  */
-	{
-	  base = end;
-	  goto next;
-	}
-
-      if (begin == 0 && end == 0) /* End of list entry.  */
-	break;
-
-      /* We have an address range entry.  */
-      if (begin < lowpc)
-	{
-	  lowpc = begin;
-	  highpc = end;
-	}
-    }
-  while (search_range (begin, end, true, false) >= 0);
-
-  /* If we didn't find any proper DWARF markers, then look in the
-     lowest-addressed range for an ad hoc marker.  Failing that,
-     fall back to just using the entrypc value.  */
-  return (nbkpts
-	  ?: (lowpc == (Dwarf_Addr) -1l ? 0
-	      : search_range (lowpc, highpc, false, true))
-	  ?: entrypc_bkpt ());
-}
diff --git a/libdw/dwarf_entrypc.c b/libdw/dwarf_entrypc.c
deleted file mode 100644
index 61a1d4b..0000000
--- a/libdw/dwarf_entrypc.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Return entry PC attribute of DIE.
-   Copyright (C) 2003, 2005 Red Hat, Inc.
-
-   This program is Open Source software; you can redistribute it and/or
-   modify it under the terms of the Open Software License version 1.0 as
-   published by the Open Source Initiative.
-
-   You should have received a copy of the Open Software License along
-   with this program; if not, you may obtain a copy of the Open Software
-   License version 1.0 from http://www.opensource.org/licenses/osl.php or
-   by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
-   3001 King Ranch Road, Ukiah, CA 95482.   */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <dwarf.h>
-#include "libdwP.h"
-
-
-int
-dwarf_entrypc (die, return_addr)
-     Dwarf_Die *die;
-     Dwarf_Addr *return_addr;
-{
-  Dwarf_Attribute attr_mem;
-
-  return INTUSE(dwarf_formaddr) (INTUSE(dwarf_attr) (die, DW_AT_entry_pc,
-						     &attr_mem)
-				 ?: INTUSE(dwarf_attr) (die, DW_AT_low_pc,
-							&attr_mem),
-				 return_addr);
-}
-INTDEF(dwarf_entrypc)
diff --git a/libdw/libdw.h b/libdw/libdw.h
index b76d432..350aa44 100644
--- a/libdw/libdw.h
+++ b/libdw/libdw.h
@@ -292,10 +292,6 @@
 extern int dwarf_lowpc (Dwarf_Die *die, Dwarf_Addr *return_addr)
      __nonnull_attribute__ (2);
 
-/* Return entry_pc or low_pc attribute of DIE.  */
-extern int dwarf_entrypc (Dwarf_Die *die, Dwarf_Addr *return_addr)
-     __nonnull_attribute__ (2);
-
 /* Return 1 if DIE's lowpc/highpc or ranges attributes match the PC address,
    0 if not, or -1 for errors.  */
 extern int dwarf_haspc (Dwarf_Die *die, Dwarf_Addr pc);
@@ -534,12 +530,6 @@
 					void *arg);
 
 
-/* Find the appropriate PC location or locations for function entry
-   breakpoints for the given DW_TAG_subprogram DIE.  Returns -1 for errors.
-   On success, returns the number of breakpoint locations (never zero)
-   and sets *BKPTS to a malloc'd vector of addresses.  */
-extern int dwarf_entry_breakpoints (Dwarf_Die *die, Dwarf_Addr **bkpts);
-
 
 /* Call callback function for each of the macro information entry for
    the CU.  */
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index d7ae776..37f2872 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -373,7 +373,6 @@
 INTDECL (dwarf_dieoffset)
 INTDECL (dwarf_diename)
 INTDECL (dwarf_end)
-INTDECL (dwarf_entrypc)
 INTDECL (dwarf_errmsg)
 INTDECL (dwarf_formaddr)
 INTDECL (dwarf_formblock)