rpms/gdb/devel .cvsignore, 1.32, 1.33 gdb-6.3-gcore-thread-20050204.patch, 1.5, 1.6 gdb-6.3-gstack-20050411.patch, 1.5, 1.6 gdb-6.3-ia64-gcore-page0-20050421.patch, 1.5, 1.6 gdb-6.3-ia64-gcore-speedup-20050714.patch, 1.4, 1.5 gdb-6.3-ia64-sigtramp-fp-20050926.patch, 1.6, 1.7 gdb-6.3-large-core-20051206.patch, 1.8, 1.9 gdb-6.3-pie-20050110.patch, 1.16, 1.17 gdb-6.3-ppc64syscall-20040622.patch, 1.4, 1.5 gdb-6.3-ppcdotsolib-20041022.patch, 1.2, 1.3 gdb-6.3-readnever-20050907.patch, 1.6, 1.7 gdb-6.3-test-pie-20050107.patch, 1.9, 1.10 gdb-6.3-threaded-watchpoints2-20050225.patch, 1.8, 1.9 gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch, 1.10, 1.11 gdb-6.5-bz203661-emit-relocs.patch, 1.2, 1.3 gdb-6.5-bz216711-clone-is-outermost.patch, 1.3, 1.4 gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch, 1.2, 1.3 gdb-6.5-gcore-i386-on-amd64.patch, 1.6, 1.7 gdb-6.6-buildid-locate-rpm.patch, 1.4, 1.5 gdb-6.6-buildid-locate.patch, 1.22, 1.23 gdb-6.6-multifork-debugreg.patch, 1.9, 1.10 gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch, 1.5, 1.6 gdb-6.7-testsuite-stable-results.patch, 1.6, 1.7 gdb-6.8-attach-signalled-detach-stopped.patch, 1.4, 1.5 gdb-6.8-bz254229-gcore-prpsinfo.patch, 1.2, 1.3 gdb-6.8-bz436037-reg-no-longer-active.patch, 1.1, 1.2 gdb-6.8-bz457187-largefile.patch, 1.1, 1.2 gdb-6.8-bz466901-backtrace-full-prelinked.patch, 1.4, 1.5 gdb-6.8-constant-watchpoints.patch, 1.5, 1.6 gdb-6.8-fortran-tag-constant.patch, 1.5, 1.6 gdb-6.8-inlining-addon.patch, 1.6, 1.7 gdb-archer.patch, 1.18, 1.19 gdb.spec, 1.367, 1.368 sources, 1.31, 1.32 gdb-6.3-dtorfix-20050121.patch, 1.6, NONE gdb-6.3-linespec-20041213.patch, 1.9, NONE gdb-6.3-removebp-20041130.patch, 1.1, NONE gdb-6.5-bz181390-memory-address-width.patch, 1.4, NONE gdb-6.6-step-thread-exit.patch, 1.4, NONE gdb-6.8-ctors-dtors-unique.patch, 1.1, NONE gdb-6.8-inlining.patch, 1.13, NONE gdb-6.8.50.20090302-upstream.patch, 1.3, NONE gdb-DW_OP_call_frame_cfa.patch, 1.1, NONE gdb-bz507267-block-sort-fast.patch, 1.1, NONE gdb-c_get_string-xfree.patch, 1.1, NONE gdb-charset-crash.patch, 1.1, NONE gdb-varobj-revalidate-core.patch, 1.1, NONE gdb-varobj-revalidate-prep.patch, 1.1, NONE

Jan Kratochvil jkratoch at fedoraproject.org
Tue Aug 4 05:37:31 UTC 2009


Author: jkratoch

Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32314

Modified Files:
	.cvsignore gdb-6.3-gcore-thread-20050204.patch 
	gdb-6.3-gstack-20050411.patch 
	gdb-6.3-ia64-gcore-page0-20050421.patch 
	gdb-6.3-ia64-gcore-speedup-20050714.patch 
	gdb-6.3-ia64-sigtramp-fp-20050926.patch 
	gdb-6.3-large-core-20051206.patch gdb-6.3-pie-20050110.patch 
	gdb-6.3-ppc64syscall-20040622.patch 
	gdb-6.3-ppcdotsolib-20041022.patch 
	gdb-6.3-readnever-20050907.patch 
	gdb-6.3-test-pie-20050107.patch 
	gdb-6.3-threaded-watchpoints2-20050225.patch 
	gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch 
	gdb-6.5-bz203661-emit-relocs.patch 
	gdb-6.5-bz216711-clone-is-outermost.patch 
	gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch 
	gdb-6.5-gcore-i386-on-amd64.patch 
	gdb-6.6-buildid-locate-rpm.patch gdb-6.6-buildid-locate.patch 
	gdb-6.6-multifork-debugreg.patch 
	gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch 
	gdb-6.7-testsuite-stable-results.patch 
	gdb-6.8-attach-signalled-detach-stopped.patch 
	gdb-6.8-bz254229-gcore-prpsinfo.patch 
	gdb-6.8-bz436037-reg-no-longer-active.patch 
	gdb-6.8-bz457187-largefile.patch 
	gdb-6.8-bz466901-backtrace-full-prelinked.patch 
	gdb-6.8-constant-watchpoints.patch 
	gdb-6.8-fortran-tag-constant.patch 
	gdb-6.8-inlining-addon.patch gdb-archer.patch gdb.spec sources 
Removed Files:
	gdb-6.3-dtorfix-20050121.patch gdb-6.3-linespec-20041213.patch 
	gdb-6.3-removebp-20041130.patch 
	gdb-6.5-bz181390-memory-address-width.patch 
	gdb-6.6-step-thread-exit.patch 
	gdb-6.8-ctors-dtors-unique.patch gdb-6.8-inlining.patch 
	gdb-6.8.50.20090302-upstream.patch 
	gdb-DW_OP_call_frame_cfa.patch 
	gdb-bz507267-block-sort-fast.patch 
	gdb-c_get_string-xfree.patch gdb-charset-crash.patch 
	gdb-varobj-revalidate-core.patch 
	gdb-varobj-revalidate-prep.patch 
Log Message:
* Tue Aug  4 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090803-1
- Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090803
- archer-jankratochvil-fedora12 commit: 0222cb1f4ddd1eda32965e464cb60b1e44e110b2



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/.cvsignore,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -p -r1.32 -r1.33
--- .cvsignore	2 Mar 2009 23:14:15 -0000	1.32
+++ .cvsignore	4 Aug 2009 05:37:27 -0000	1.33
@@ -1 +1 @@
-gdb-6.8.50.20090302.tar.bz2
+gdb-6.8.50.20090803.tar.bz2

gdb-6.3-gcore-thread-20050204.patch:
 linux-nat.c |    5 +++++
 1 file changed, 5 insertions(+)

Index: gdb-6.3-gcore-thread-20050204.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-gcore-thread-20050204.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- gdb-6.3-gcore-thread-20050204.patch	14 Dec 2008 14:05:14 -0000	1.5
+++ gdb-6.3-gcore-thread-20050204.patch	4 Aug 2009 05:37:27 -0000	1.6
@@ -3,13 +3,13 @@
         * linux-nat.c (linux_nat_xfer_memory): Don't use
         linux_proc_xfer_memory for ia64.
 
-Index: gdb-6.8.50.20081209/gdb/linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/linux-nat.c	2008-12-10 01:22:23.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/linux-nat.c	2008-12-10 01:25:26.000000000 +0100
-@@ -4123,10 +4123,15 @@ linux_xfer_partial (struct target_ops *o
-     return linux_nat_xfer_osdata (ops, object, annex, readbuf, writebuf,
-                                offset, len);
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.c	2009-08-04 06:29:55.000000000 +0200
+@@ -4495,10 +4495,15 @@ linux_xfer_partial (struct target_ops *o
+ 	offset &= ((ULONGEST) 1 << addr_bit) - 1;
+     }
  
 +#ifndef NATIVE_XFER_UNWIND_TABLE
 +  /* FIXME: For ia64, we cannot currently use linux_proc_xfer_memory

gdb-6.3-gstack-20050411.patch:
 Makefile.in |   32 ++++++++++++++++++++++++++++++--
 gstack.sh   |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+), 2 deletions(-)

Index: gdb-6.3-gstack-20050411.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-gstack-20050411.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- gdb-6.3-gstack-20050411.patch	27 Apr 2009 15:22:01 -0000	1.5
+++ gdb-6.3-gstack-20050411.patch	4 Aug 2009 05:37:27 -0000	1.6
@@ -4,20 +4,20 @@
 	to install and uninstall.
 	* gstack.sh, gstack.1: New files.
 
-Index: gdb-6.8.50.20090226/gdb/Makefile.in
+Index: gdb-6.8.50.20090802/gdb/Makefile.in
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/Makefile.in	2009-02-26 22:09:59.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/Makefile.in	2009-02-26 22:10:22.000000000 +0100
-@@ -973,7 +973,7 @@ install: all install-only 
- 
- # The "install-only" target also installs the syscalls' XML files in
- # the system.
--install-only: $(CONFIG_INSTALL) xml-syscall-install
-+install-only: install-gstack $(CONFIG_INSTALL) xml-syscall-install
+--- gdb-6.8.50.20090802.orig/gdb/Makefile.in	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/Makefile.in	2009-08-03 11:09:49.000000000 +0200
+@@ -947,7 +947,7 @@ gdb.z:gdb.1
+ # time it takes for make to check that all is up to date.
+ # install-only is intended to address that need.
+ install: all install-only
+-install-only: $(CONFIG_INSTALL)
++install-only: install-gstack $(CONFIG_INSTALL)
  	transformed_name=`t='$(program_transform_name)'; \
  			  echo gdb | sed -e "$$t"` ; \
  		if test "x$$transformed_name" = x; then \
-@@ -1005,9 +1005,26 @@ install-tui:
+@@ -979,9 +979,26 @@ install-tui:
  			$(DESTDIR)$(man1dir) ; \
  		$(INSTALL_DATA) $(srcdir)/gdb.1 \
  			$(DESTDIR)$(man1dir)/$$transformed_name.1
@@ -45,7 +45,7 @@ Index: gdb-6.8.50.20090226/gdb/Makefile.
  	transformed_name=`t='$(program_transform_name)'; \
  			  echo gdb | sed -e $$t` ; \
  		if test "x$$transformed_name" = x; then \
-@@ -1029,6 +1046,17 @@ uninstall-tui:
+@@ -1003,6 +1020,17 @@ uninstall-tui:
  		fi ; \
  		rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \
  		      $(DESTDIR)$(man1dir)/$$transformed_name.1
@@ -63,10 +63,10 @@ Index: gdb-6.8.50.20090226/gdb/Makefile.
  
  # The C++ name parser can be built standalone for testing.
  test-cp-name-parser.o: cp-name-parser.c
-Index: gdb-6.8.50.20090226/gdb/gstack.sh
+Index: gdb-6.8.50.20090802/gdb/gstack.sh
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090226/gdb/gstack.sh	2009-02-26 22:10:05.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/gstack.sh	2009-08-03 11:08:52.000000000 +0200
 @@ -0,0 +1,48 @@
 +#!/bin/sh
 +

gdb-6.3-ia64-gcore-page0-20050421.patch:
 gcore.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Index: gdb-6.3-ia64-gcore-page0-20050421.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ia64-gcore-page0-20050421.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- gdb-6.3-ia64-gcore-page0-20050421.patch	14 Dec 2008 14:05:14 -0000	1.5
+++ gdb-6.3-ia64-gcore-page0-20050421.patch	4 Aug 2009 05:37:27 -0000	1.6
@@ -1,8 +1,8 @@
-Index: gdb-6.8.50.20081128/gdb/gcore.c
+Index: gdb-6.8.50.20090802/gdb/gcore.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/gcore.c	2008-09-11 16:27:34.000000000 +0200
-+++ gdb-6.8.50.20081128/gdb/gcore.c	2008-12-01 16:39:04.000000000 +0100
-@@ -475,8 +475,14 @@ gcore_copy_callback (bfd *obfd, asection
+--- gdb-6.8.50.20090802.orig/gdb/gcore.c	2009-08-03 12:27:55.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/gcore.c	2009-08-03 12:28:56.000000000 +0200
+@@ -479,8 +479,14 @@ gcore_copy_callback (bfd *obfd, asection
        if (size > total_size)
  	size = total_size;
  
@@ -12,9 +12,9 @@ Index: gdb-6.8.50.20081128/gdb/gcore.c
        if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
 -			      memhunk, size) != 0)
 +			      memhunk, size) != 0
-+	  && (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
++	  && (strcmp (gdbarch_bfd_arch_info (target_gdbarch)->arch_name,
 +		      "ia64")
 +	      || bfd_section_vma (obfd, osec) != 0))
  	{
- 	  warning (_("Memory read failed for corefile section, %s bytes at 0x%s."),
- 		   plongest (size), paddr (bfd_section_vma (obfd, osec)));
+ 	  warning (_("Memory read failed for corefile section, %s bytes at %s."),
+ 		   plongest (size),

gdb-6.3-ia64-gcore-speedup-20050714.patch:
 ia64-linux-nat.c |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 linux-nat.c      |   33 ++++++++++++++++++++++++++-----
 2 files changed, 86 insertions(+), 5 deletions(-)

Index: gdb-6.3-ia64-gcore-speedup-20050714.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ia64-gcore-speedup-20050714.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- gdb-6.3-ia64-gcore-speedup-20050714.patch	2 Mar 2009 00:11:34 -0000	1.4
+++ gdb-6.3-ia64-gcore-speedup-20050714.patch	4 Aug 2009 05:37:27 -0000	1.5
@@ -7,13 +7,13 @@
 	(ia64_rse_skip_regs): Ditto.
 	(ia64_linux_check_stack_region): New function.
 	
-Index: gdb-6.8.50.20090226/gdb/linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/linux-nat.c	2009-02-27 07:51:44.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/linux-nat.c	2009-02-28 07:19:05.000000000 +0100
-@@ -4386,15 +4386,38 @@ linux_xfer_partial (struct target_ops *o
-     return linux_nat_xfer_osdata (ops, object, annex, readbuf, writebuf,
-                                offset, len);
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c	2009-08-04 06:29:55.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.c	2009-08-04 06:30:53.000000000 +0200
+@@ -4495,15 +4495,38 @@ linux_xfer_partial (struct target_ops *o
+ 	offset &= ((ULONGEST) 1 << addr_bit) - 1;
+     }
  
 -#ifndef NATIVE_XFER_UNWIND_TABLE
 -  /* FIXME: For ia64, we cannot currently use linux_proc_xfer_memory
@@ -55,10 +55,10 @@ Index: gdb-6.8.50.20090226/gdb/linux-nat
  
    return super_xfer_partial (ops, object, annex, readbuf, writebuf,
  			     offset, len);
-Index: gdb-6.8.50.20090226/gdb/ia64-linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/ia64-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/ia64-linux-nat.c	2009-02-23 01:03:49.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/ia64-linux-nat.c	2009-02-28 07:18:10.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/ia64-linux-nat.c	2009-02-23 01:03:49.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/ia64-linux-nat.c	2009-08-04 06:30:53.000000000 +0200
 @@ -809,6 +809,64 @@ ia64_linux_xfer_partial (struct target_o
  
  void _initialize_ia64_linux_nat (void);

gdb-6.3-ia64-sigtramp-fp-20050926.patch:
 ia64-tdep.c       |   12 +++++++++---
 libunwind-frame.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 libunwind-frame.h |    3 +++
 3 files changed, 58 insertions(+), 5 deletions(-)

Index: gdb-6.3-ia64-sigtramp-fp-20050926.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ia64-sigtramp-fp-20050926.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- gdb-6.3-ia64-sigtramp-fp-20050926.patch	14 Dec 2008 14:05:14 -0000	1.6
+++ gdb-6.3-ia64-sigtramp-fp-20050926.patch	4 Aug 2009 05:37:27 -0000	1.7
@@ -24,11 +24,11 @@
 
 	Fix a compilation error on a typo.
 
-Index: gdb-6.8.50.20081128/gdb/libunwind-frame.c
+Index: gdb-6.8.50.20090803/gdb/libunwind-frame.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/libunwind-frame.c	2008-05-06 20:37:46.000000000 +0200
-+++ gdb-6.8.50.20081128/gdb/libunwind-frame.c	2008-12-02 19:46:26.000000000 +0100
-@@ -61,6 +61,7 @@ static unw_word_t (*unw_find_dyn_list_p)
+--- gdb-6.8.50.20090803.orig/gdb/libunwind-frame.c	2009-01-03 06:57:52.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/libunwind-frame.c	2009-08-04 06:31:34.000000000 +0200
+@@ -62,6 +62,7 @@ static unw_word_t (*unw_find_dyn_list_p)
  struct libunwind_frame_cache
  {
    CORE_ADDR base;
@@ -36,7 +36,7 @@ Index: gdb-6.8.50.20081128/gdb/libunwind
    CORE_ADDR func_addr;
    unw_cursor_t cursor;
    unw_addr_space_t as;
-@@ -133,6 +134,7 @@ libunwind_frame_cache (struct frame_info
+@@ -134,6 +135,7 @@ libunwind_frame_cache (struct frame_info
    unw_accessors_t *acc;
    unw_addr_space_t as;
    unw_word_t fp;
@@ -44,7 +44,7 @@ Index: gdb-6.8.50.20081128/gdb/libunwind
    unw_regnum_t uw_sp_regnum;
    struct libunwind_frame_cache *cache;
    struct libunwind_descr *descr;
-@@ -174,14 +176,30 @@ libunwind_frame_cache (struct frame_info
+@@ -175,14 +177,30 @@ libunwind_frame_cache (struct frame_info
  				 : __LITTLE_ENDIAN);
  
    unw_init_remote_p (&cache->cursor, as, this_frame);
@@ -77,7 +77,7 @@ Index: gdb-6.8.50.20081128/gdb/libunwind
    ret = unw_get_reg_p (&cache->cursor, uw_sp_regnum, &fp);
    if (ret < 0)
      {
-@@ -189,6 +207,7 @@ libunwind_frame_cache (struct frame_info
+@@ -190,6 +208,7 @@ libunwind_frame_cache (struct frame_info
        error (_("Can't get libunwind sp register."));
      }
  
@@ -85,7 +85,7 @@ Index: gdb-6.8.50.20081128/gdb/libunwind
    cache->base = (CORE_ADDR)fp;
    cache->as = as;
  
-@@ -376,6 +395,31 @@ libunwind_search_unwind_table (void *as,
+@@ -377,6 +396,31 @@ libunwind_search_unwind_table (void *as,
  				    di, pi, need_unwind_info, args);
  }
  
@@ -117,10 +117,10 @@ Index: gdb-6.8.50.20081128/gdb/libunwind
  /* Verify if we are in a sigtramp frame and we can use libunwind to unwind.  */
  int
  libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self,
-Index: gdb-6.8.50.20081128/gdb/libunwind-frame.h
+Index: gdb-6.8.50.20090803/gdb/libunwind-frame.h
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/libunwind-frame.h	2008-05-06 20:37:46.000000000 +0200
-+++ gdb-6.8.50.20081128/gdb/libunwind-frame.h	2008-12-02 19:38:55.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/libunwind-frame.h	2009-01-03 06:57:52.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/libunwind-frame.h	2009-08-04 06:31:34.000000000 +0200
 @@ -52,6 +52,9 @@ void libunwind_frame_set_descr (struct g
  
  void libunwind_frame_this_id (struct frame_info *this_frame, void **this_cache,
@@ -131,11 +131,11 @@ Index: gdb-6.8.50.20081128/gdb/libunwind
  struct value *libunwind_frame_prev_register (struct frame_info *this_frame,
                                               void **this_cache, int regnum);
  void libunwind_frame_dealloc_cache (struct frame_info *self, void *cache);
-Index: gdb-6.8.50.20081128/gdb/ia64-tdep.c
+Index: gdb-6.8.50.20090803/gdb/ia64-tdep.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/ia64-tdep.c	2008-12-02 19:04:32.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/ia64-tdep.c	2008-12-02 21:09:46.000000000 +0100
-@@ -2964,7 +2964,7 @@ ia64_libunwind_sigtramp_frame_this_id (s
+--- gdb-6.8.50.20090803.orig/gdb/ia64-tdep.c	2009-08-04 06:30:45.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/ia64-tdep.c	2009-08-04 06:31:34.000000000 +0200
+@@ -3023,7 +3023,7 @@ ia64_libunwind_sigtramp_frame_this_id (s
    struct frame_id id;
    CORE_ADDR prev_ip;
  
@@ -144,9 +144,9 @@ Index: gdb-6.8.50.20081128/gdb/ia64-tdep
    if (frame_id_eq (id, null_frame_id))
      {
        (*this_id) = null_frame_id;
-@@ -2976,8 +2976,14 @@ ia64_libunwind_sigtramp_frame_this_id (s
+@@ -3035,8 +3035,14 @@ ia64_libunwind_sigtramp_frame_this_id (s
    get_frame_register (this_frame, IA64_BSP_REGNUM, buf);
-   bsp = extract_unsigned_integer (buf, 8);
+   bsp = extract_unsigned_integer (buf, 8, byte_order);
  
 -  /* For a sigtramp frame, we don't make the check for previous ip being 0.  */
 -  (*this_id) = frame_id_build_special (id.stack_addr, id.code_addr, bsp);

gdb-6.3-large-core-20051206.patch:
 dcache.c      |    4 ++--
 dcache.h      |    4 ++--
 exec.c        |    2 +-
 exec.h        |    2 +-
 linux-nat.c   |    2 +-
 remote-sim.c  |    7 +++++--
 remote.c      |   14 +++++++++++---
 symfile-mem.c |   10 +++++++++-
 target.c      |   18 +++++++++---------
 target.h      |   12 ++++++------
 10 files changed, 47 insertions(+), 28 deletions(-)

Index: gdb-6.3-large-core-20051206.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-large-core-20051206.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -p -r1.8 -r1.9
--- gdb-6.3-large-core-20051206.patch	2 Mar 2009 00:11:34 -0000	1.8
+++ gdb-6.3-large-core-20051206.patch	4 Aug 2009 05:37:27 -0000	1.9
@@ -25,10 +25,10 @@
 
 	Port to GDB-6.7.
 
-Index: gdb-6.8.50.20090226/gdb/symfile-mem.c
+Index: gdb-6.8.50.20090803/gdb/symfile-mem.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/symfile-mem.c	2009-02-21 17:14:49.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/symfile-mem.c	2009-02-28 07:22:09.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/symfile-mem.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile-mem.c	2009-08-03 16:03:17.000000000 +0200
 @@ -56,6 +56,14 @@
  #include "elf/common.h"
  
@@ -53,11 +53,11 @@ Index: gdb-6.8.50.20090226/gdb/symfile-m
    if (nbfd == NULL)
      error (_("Failed to read a valid object file image from memory."));
  
-Index: gdb-6.8.50.20090226/gdb/target.c
+Index: gdb-6.8.50.20090803/gdb/target.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/target.c	2009-02-27 00:04:32.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/target.c	2009-02-28 07:22:09.000000000 +0100
-@@ -57,7 +57,7 @@ static int nosymbol (char *, CORE_ADDR *
+--- gdb-6.8.50.20090803.orig/gdb/target.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/target.c	2009-08-03 16:03:17.000000000 +0200
+@@ -59,7 +59,7 @@ static int nosymbol (char *, CORE_ADDR *
  
  static void tcomplain (void) ATTR_NORETURN;
  
@@ -66,16 +66,16 @@ Index: gdb-6.8.50.20090226/gdb/target.c
  
  static int return_zero (void);
  
-@@ -286,7 +286,7 @@ target_create_inferior (char *exec_file,
+@@ -452,7 +452,7 @@ target_terminal_inferior (void)
+   (*current_target.to_terminal_inferior) ();
  }
  
- 
 -static int
 +static LONGEST
  nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
  	  struct target_ops *t)
  {
-@@ -507,7 +507,7 @@ update_current_target (void)
+@@ -670,7 +670,7 @@ update_current_target (void)
  	    (void (*) (struct regcache *))
  	    noprocess);
    de_fault (deprecated_xfer_memory,
@@ -84,25 +84,25 @@ Index: gdb-6.8.50.20090226/gdb/target.c
  	    nomemory);
    de_fault (to_files_info,
  	    (void (*) (struct target_ops *))
-@@ -1237,7 +1237,7 @@ target_xfer_partial (struct target_ops *
+@@ -1381,7 +1381,7 @@ target_xfer_partial (struct target_ops *
     it makes no progress, and then return how much was transferred). */
  
  int
 -target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len)
 +target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len)
  {
-   if (target_read (&current_target, TARGET_OBJECT_MEMORY, NULL,
- 		   myaddr, memaddr, len) == len)
-@@ -1247,7 +1247,7 @@ target_read_memory (CORE_ADDR memaddr, g
+   /* Dispatch to the topmost target, not the flattened current_target.
+      Memory accesses check target->to_has_(all_)memory, and the
+@@ -1394,7 +1394,7 @@ target_read_memory (CORE_ADDR memaddr, g
  }
  
  int
 -target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, int len)
 +target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, LONGEST len)
  {
-   if (target_write (&current_target, TARGET_OBJECT_MEMORY, NULL,
- 		    myaddr, memaddr, len) == len)
-@@ -2777,8 +2777,8 @@ debug_to_prepare_to_store (struct regcac
+   /* Dispatch to the topmost target, not the flattened current_target.
+      Memory accesses check target->to_has_(all_)memory, and the
+@@ -2861,8 +2861,8 @@ debug_to_prepare_to_store (struct regcac
    fprintf_unfiltered (gdb_stdlog, "target_prepare_to_store ()\n");
  }
  
@@ -113,22 +113,22 @@ Index: gdb-6.8.50.20090226/gdb/target.c
  			      int write, struct mem_attrib *attrib,
  			      struct target_ops *target)
  {
-@@ -2788,8 +2788,8 @@ deprecated_debug_xfer_memory (CORE_ADDR 
+@@ -2872,8 +2872,8 @@ deprecated_debug_xfer_memory (CORE_ADDR 
  						attrib, target);
  
    fprintf_unfiltered (gdb_stdlog,
 -		      "target_xfer_memory (%s, xxx, %d, %s, xxx) = %d",
--		      paddress (memaddr), len, write ? "write" : "read",
+-		      paddress (target_gdbarch, memaddr), len,
 +		      "target_xfer_memory (%s, xxx, %ld, %s, xxx) = %d",
-+		      paddress (memaddr), (long) len, write ? "write" : "read",
-                       retval);
++		      paddress (target_gdbarch, memaddr), (long) len,
+ 		      write ? "write" : "read", retval);
  
    if (retval > 0)
-Index: gdb-6.8.50.20090226/gdb/target.h
+Index: gdb-6.8.50.20090803/gdb/target.h
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/target.h	2009-02-27 00:04:32.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/target.h	2009-02-28 07:22:09.000000000 +0100
-@@ -376,10 +376,10 @@ struct target_ops
+--- gdb-6.8.50.20090803.orig/gdb/target.h	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/target.h	2009-08-03 16:03:17.000000000 +0200
+@@ -363,10 +363,10 @@ struct target_ops
         NOTE: cagney/2004-10-01: This has been entirely superseeded by
         to_xfer_partial and inferior inheritance.  */
  
@@ -142,30 +142,24 @@ Index: gdb-6.8.50.20090226/gdb/target.h
 +				       struct target_ops *target);
  
      void (*to_files_info) (struct target_ops *);
-     int (*to_insert_breakpoint) (struct bp_target_info *);
-@@ -679,13 +679,14 @@ extern DCACHE *target_dcache;
+     int (*to_insert_breakpoint) (struct gdbarch *, struct bp_target_info *);
+@@ -675,10 +675,10 @@ extern DCACHE *target_dcache;
  
  extern int target_read_string (CORE_ADDR, char **, int, int *);
  
 -extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len);
-+extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
-+			       LONGEST len);
++extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len);
  
  extern int target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr,
 -				int len);
 +				LONGEST len);
  
--extern int xfer_memory (CORE_ADDR, gdb_byte *, int, int,
--			struct mem_attrib *, struct target_ops *);
-+extern LONGEST xfer_memory (CORE_ADDR, gdb_byte *, LONGEST, int,
-+			    struct mem_attrib *, struct target_ops *);
- 
  /* Fetches the target's memory map.  If one is found it is sorted
     and returned, after some consistency checking.  Otherwise, NULL
-Index: gdb-6.8.50.20090226/gdb/dcache.c
+Index: gdb-6.8.50.20090803/gdb/dcache.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/dcache.c	2009-01-03 06:57:51.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/dcache.c	2009-02-28 07:22:09.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/dcache.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/dcache.c	2009-08-03 16:03:17.000000000 +0200
 @@ -524,9 +524,9 @@ dcache_free (DCACHE *dcache)
  
     This routine is indended to be called by remote_xfer_ functions. */
@@ -178,10 +172,10 @@ Index: gdb-6.8.50.20090226/gdb/dcache.c
  {
    int i;
    int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
-Index: gdb-6.8.50.20090226/gdb/dcache.h
+Index: gdb-6.8.50.20090803/gdb/dcache.h
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/dcache.h	2009-01-03 06:57:51.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/dcache.h	2009-02-28 07:22:09.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/dcache.h	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/dcache.h	2009-08-03 16:03:17.000000000 +0200
 @@ -35,7 +35,7 @@ void dcache_free (DCACHE *);
  
  /* Simple to call from <remote>_xfer_memory */
@@ -192,26 +186,24 @@ Index: gdb-6.8.50.20090226/gdb/dcache.h
 +			    LONGEST len, int should_write);
  
  #endif /* DCACHE_H */
-Index: gdb-6.8.50.20090226/gdb/exec.c
+Index: gdb-6.8.50.20090803/gdb/exec.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/exec.c	2009-02-22 20:35:47.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/exec.c	2009-02-28 07:22:09.000000000 +0100
-@@ -464,8 +464,8 @@ map_vmap (bfd *abfd, bfd *arch)
-    The same routine is used to handle both core and exec files;
-    we just tail-call it with more arguments to select between them.  */
+--- gdb-6.8.50.20090803.orig/gdb/exec.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/exec.c	2009-08-03 16:03:17.000000000 +0200
+@@ -560,7 +560,7 @@ map_vmap (bfd *abfd, bfd *arch)
+ }
+ 
  
 -int
--xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write,
 +LONGEST
-+xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len, int write,
- 	     struct mem_attrib *attrib, struct target_ops *target)
- {
-   int res;
-Index: gdb-6.8.50.20090226/gdb/linux-nat.c
+ section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf,
+ 				   ULONGEST offset, LONGEST len,
+ 				   struct target_section *sections,
+Index: gdb-6.8.50.20090803/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/linux-nat.c	2009-02-28 07:22:02.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/linux-nat.c	2009-02-28 07:22:32.000000000 +0100
-@@ -4407,7 +4407,7 @@ linux_xfer_partial (struct target_ops *o
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.c	2009-08-03 16:03:17.000000000 +0200
+@@ -4516,7 +4516,7 @@ linux_xfer_partial (struct target_ops *o
  #endif
        if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
  	{ /* This region contains ia64 rse registers, we have to re-read.  */
@@ -220,10 +212,10 @@ Index: gdb-6.8.50.20090226/gdb/linux-nat
  
  	  /* Re-read register stack area.  */
  	  xxfer = super_xfer_partial (ops, object, annex,
-Index: gdb-6.8.50.20090226/gdb/remote.c
+Index: gdb-6.8.50.20090803/gdb/remote.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/remote.c	2009-02-25 03:14:22.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/remote.c	2009-02-28 07:22:09.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/remote.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/remote.c	2009-08-03 16:03:17.000000000 +0200
 @@ -25,6 +25,7 @@
  #include "gdb_string.h"
  #include <ctype.h>
@@ -232,7 +224,7 @@ Index: gdb-6.8.50.20090226/gdb/remote.c
  #include "inferior.h"
  #include "bfd.h"
  #include "symfile.h"
-@@ -5683,12 +5684,19 @@ handle_notification (char *buf, size_t l
+@@ -5785,12 +5786,19 @@ handle_notification (char *buf, size_t l
     if SHOULD_WRITE is nonzero.  Returns length of data written or
     read; 0 for error.  TARGET is unused.  */
  
@@ -254,7 +246,7 @@ Index: gdb-6.8.50.20090226/gdb/remote.c
  
    set_general_thread (inferior_ptid);
  
-@@ -5697,7 +5705,7 @@ remote_xfer_memory (CORE_ADDR mem_addr, 
+@@ -5799,7 +5807,7 @@ remote_xfer_memory (CORE_ADDR mem_addr, 
    else
      res = remote_read_bytes (mem_addr, buffer, mem_len);
  
@@ -263,11 +255,11 @@ Index: gdb-6.8.50.20090226/gdb/remote.c
  }
  
  /* Sends a packet with content determined by the printf format string
-Index: gdb-6.8.50.20090226/gdb/remote-sim.c
+Index: gdb-6.8.50.20090803/gdb/remote-sim.c
 ===================================================================
---- gdb-6.8.50.20090226.orig/gdb/remote-sim.c	2009-02-23 19:31:23.000000000 +0100
-+++ gdb-6.8.50.20090226/gdb/remote-sim.c	2009-02-28 07:22:09.000000000 +0100
-@@ -754,11 +754,14 @@ gdbsim_prepare_to_store (struct regcache
+--- gdb-6.8.50.20090803.orig/gdb/remote-sim.c	2009-08-03 16:03:00.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/remote-sim.c	2009-08-03 16:03:17.000000000 +0200
+@@ -752,11 +752,14 @@ gdbsim_prepare_to_store (struct regcache
  
     Returns the number of bytes transferred. */
  
@@ -284,33 +276,16 @@ Index: gdb-6.8.50.20090226/gdb/remote-si
    /* If no program is running yet, then ignore the simulator for
       memory.  Pass the request down to the next target, hopefully
       an exec file.  */
-@@ -774,22 +777,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
-       printf_filtered ("gdbsim_xfer_inferior_memory: myaddr 0x");
-       gdb_print_host_address (myaddr, gdb_stdout);
-       printf_filtered (", memaddr 0x%s, len %d, write %d\n",
--		       paddr_nz (memaddr), len, write);
-+		       paddr_nz (memaddr), xfer_len, write);
-       if (remote_debug && write)
--	dump_mem (myaddr, len);
-+	dump_mem (myaddr, xfer_len);
-     }
- 
-   if (write)
-     {
--      len = sim_write (gdbsim_desc, memaddr, myaddr, len);
-+      xfer_len = sim_write (gdbsim_desc, memaddr, myaddr, xfer_len);
-     }
-   else
-     {
--      len = sim_read (gdbsim_desc, memaddr, myaddr, len);
--      if (remote_debug && len > 0)
--	dump_mem (myaddr, len);
-+      xfer_len = sim_read (gdbsim_desc, memaddr, myaddr, xfer_len);
-+      if (remote_debug && xfer_len > 0)
-+	dump_mem (myaddr, xfer_len);
-     }
--  return len;
-+  return (LONGEST)xfer_len;
- }
- 
- static void
+Index: gdb-6.8.50.20090803/gdb/exec.h
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/exec.h	2009-06-12 20:38:36.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/exec.h	2009-08-03 16:03:57.000000000 +0200
+@@ -56,7 +56,7 @@ extern int resize_section_table (struct 
+ 
+    One, and only one, of readbuf or writebuf must be non-NULL.  */
+ 
+-extern int section_table_xfer_memory_partial (gdb_byte *, const gdb_byte *,
++extern LONGEST section_table_xfer_memory_partial (gdb_byte *, const gdb_byte *,
+ 					      ULONGEST, LONGEST,
+ 					      struct target_section *,
+ 					      struct target_section *,

gdb-6.3-pie-20050110.patch:
 amd64-tdep.c  |   71 +++++++-
 auxv.c        |   24 +-
 auxv.h        |    4 
 dwarf2read.c  |    2 
 elfread.c     |    2 
 infrun.c      |    4 
 objfiles.c    |   14 +
 solib-svr4.c  |  474 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 solib.c       |  107 ++++++++++---
 solist.h      |    8 
 symfile-mem.c |    2 
 symfile.c     |   23 ++
 symfile.h     |    8 
 target.h      |    2 
 14 files changed, 629 insertions(+), 116 deletions(-)

Index: gdb-6.3-pie-20050110.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-pie-20050110.patch,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- gdb-6.3-pie-20050110.patch	15 Jun 2009 12:53:17 -0000	1.16
+++ gdb-6.3-pie-20050110.patch	4 Aug 2009 05:37:27 -0000	1.17
@@ -26,10 +26,10 @@
 
 	Fix scan_dyntag() for binaries provided by valgrind (BZ 460319).
 
-Index: gdb-6.8.50.20090302/gdb/amd64-tdep.c
+Index: gdb-6.8.50.20090803/gdb/amd64-tdep.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/amd64-tdep.c	2009-05-10 21:36:29.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/amd64-tdep.c	2009-05-10 21:41:23.000000000 +0200
+--- gdb-6.8.50.20090803.orig/gdb/amd64-tdep.c	2009-08-03 21:39:38.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/amd64-tdep.c	2009-08-03 21:39:39.000000000 +0200
 @@ -36,6 +36,7 @@
  #include "regcache.h"
  #include "regset.h"
@@ -38,15 +38,17 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tde
  
  #include "gdb_assert.h"
  
-@@ -1586,16 +1587,28 @@ amd64_analyze_stack_align (CORE_ADDR pc,
+@@ -1591,18 +1592,31 @@ amd64_analyze_stack_align (CORE_ADDR pc,
     Any function that doesn't start with this sequence will be assumed
     to have no prologue and thus no valid frame pointer in %rbp.  */
  
 -static CORE_ADDR
--amd64_analyze_prologue (CORE_ADDR pc, CORE_ADDR current_pc,
+-amd64_analyze_prologue (struct gdbarch *gdbarch,
+-			CORE_ADDR pc, CORE_ADDR current_pc,
 -			struct amd64_frame_cache *cache)
 +struct amd64_analyze_prologue_data
 +  {
++    struct gdbarch *gdbarch;
 +    CORE_ADDR pc, current_pc;
 +    struct amd64_frame_cache *cache;
 +    CORE_ADDR retval;
@@ -56,8 +58,10 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tde
 +amd64_analyze_prologue_1 (void *data_pointer)
  {
 +  struct amd64_analyze_prologue_data *data = data_pointer;
++  struct gdbarch *gdbarch = data->gdbarch;
 +  CORE_ADDR pc = data->pc, current_pc = data->current_pc;
 +  struct amd64_frame_cache *cache = data->cache;
+   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    static gdb_byte proto[3] = { 0x48, 0x89, 0xe5 }; /* movq %rsp, %rbp */
    gdb_byte buf[3];
    gdb_byte op;
@@ -71,7 +75,7 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tde
  
    pc = amd64_analyze_stack_align (pc, current_pc, cache);
  
-@@ -1610,18 +1623,57 @@ amd64_analyze_prologue (CORE_ADDR pc, CO
+@@ -1617,18 +1631,59 @@ amd64_analyze_prologue (struct gdbarch *
  
        /* If that's all, return now.  */
        if (current_pc <= pc + 1)
@@ -107,7 +111,8 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tde
 +   ->find_function_start_sal  */
 +
 +static CORE_ADDR
-+amd64_analyze_prologue (CORE_ADDR pc, CORE_ADDR current_pc,
++amd64_analyze_prologue (struct gdbarch *gdbarch,
++			CORE_ADDR pc, CORE_ADDR current_pc,
 +			struct amd64_frame_cache *cache)
 +{
 +  int status;
@@ -118,6 +123,7 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tde
 +  saved_gdb_stderr = gdb_stderr;
 +  gdb_stderr = ui_file_new ();
 +
++  data.gdbarch = gdbarch;
 +  data.pc = pc;
 +  data.current_pc = current_pc;
 +  data.cache = cache;
@@ -132,11 +138,11 @@ Index: gdb-6.8.50.20090302/gdb/amd64-tde
    return pc;
  }
  
-Index: gdb-6.8.50.20090302/gdb/auxv.c
+Index: gdb-6.8.50.20090803/gdb/auxv.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/auxv.c	2009-05-10 21:36:27.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/auxv.c	2009-05-10 21:41:23.000000000 +0200
-@@ -81,7 +81,7 @@ procfs_xfer_auxv (struct target_ops *ops
+--- gdb-6.8.50.20090803.orig/gdb/auxv.c	2009-08-03 21:39:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/auxv.c	2009-08-03 21:39:39.000000000 +0200
+@@ -78,7 +78,7 @@ procfs_xfer_auxv (struct target_ops *ops
     Return 1 if an entry was read into *TYPEP and *VALP.  */
  static int
  default_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
@@ -145,7 +151,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
  {
    const int sizeof_auxv_field = gdbarch_ptr_bit (target_gdbarch)
  				/ TARGET_CHAR_BIT;
-@@ -108,7 +108,7 @@ default_auxv_parse (struct target_ops *o
+@@ -106,7 +106,7 @@ default_auxv_parse (struct target_ops *o
     Return 1 if an entry was read into *TYPEP and *VALP.  */
  int
  target_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
@@ -154,7 +160,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
  {
    struct target_ops *t;
    for (t = ops; t != NULL; t = t->beneath)
-@@ -123,9 +123,10 @@ target_auxv_parse (struct target_ops *op
+@@ -121,9 +121,10 @@ target_auxv_parse (struct target_ops *op
     an error getting the information.  On success, return 1 after
     storing the entry's value field in *VALP.  */
  int
@@ -167,7 +173,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
    gdb_byte *data;
    LONGEST n = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL, &data);
    gdb_byte *ptr = data;
-@@ -135,10 +136,10 @@ target_auxv_search (struct target_ops *o
+@@ -133,10 +134,10 @@ target_auxv_search (struct target_ops *o
      return n;
  
    while (1)
@@ -180,7 +186,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
  	  {
  	    xfree (data);
  	    *valp = val;
-@@ -161,7 +162,8 @@ target_auxv_search (struct target_ops *o
+@@ -159,7 +160,8 @@ target_auxv_search (struct target_ops *o
  int
  fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
  {
@@ -190,7 +196,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
    gdb_byte *data;
    LONGEST len = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL,
  				   &data);
-@@ -171,13 +173,13 @@ fprint_target_auxv (struct ui_file *file
+@@ -169,13 +171,13 @@ fprint_target_auxv (struct ui_file *file
    if (len <= 0)
      return len;
  
@@ -206,7 +212,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
  	{
  #define TAG(tag, text, kind) \
  	case tag: name = #tag; description = text; flavor = kind; break
-@@ -233,7 +235,7 @@ fprint_target_auxv (struct ui_file *file
+@@ -231,7 +233,7 @@ fprint_target_auxv (struct ui_file *file
  	}
  
        fprintf_filtered (file, "%-4s %-20s %-30s ",
@@ -215,7 +221,7 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
        switch (flavor)
  	{
  	case dec:
-@@ -255,7 +257,7 @@ fprint_target_auxv (struct ui_file *file
+@@ -253,7 +255,7 @@ fprint_target_auxv (struct ui_file *file
  	  break;
  	}
        ++ents;
@@ -224,11 +230,11 @@ Index: gdb-6.8.50.20090302/gdb/auxv.c
  	break;
      }
  
-Index: gdb-6.8.50.20090302/gdb/auxv.h
+Index: gdb-6.8.50.20090803/gdb/auxv.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/auxv.h	2009-01-03 06:57:50.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/auxv.h	2009-05-10 21:41:23.000000000 +0200
-@@ -36,14 +36,14 @@ struct target_ops;		/* Forward declarati
+--- gdb-6.8.50.20090803.orig/gdb/auxv.h	2009-08-03 21:39:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/auxv.h	2009-08-03 21:39:39.000000000 +0200
+@@ -31,14 +31,14 @@
     Return 1 if an entry was read into *TYPEP and *VALP.  */
  extern int target_auxv_parse (struct target_ops *ops,
  			      gdb_byte **readptr, gdb_byte *endptr,
@@ -245,123 +251,24 @@ Index: gdb-6.8.50.20090302/gdb/auxv.h
  
  /* Print the contents of the target's AUXV on the specified file. */
  extern int fprint_target_auxv (struct ui_file *file, struct target_ops *ops);
-Index: gdb-6.8.50.20090302/gdb/breakpoint.c
+Index: gdb-6.8.50.20090803/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/breakpoint.c	2009-05-10 21:36:30.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/breakpoint.c	2009-05-10 21:41:23.000000000 +0200
-@@ -3920,7 +3920,8 @@ describe_other_breakpoints (CORE_ADDR pc
- 	      printf_filtered (" (thread %d)", b->thread);
- 	    printf_filtered ("%s%s ",
- 			     ((b->enable_state == bp_disabled || 
--			       b->enable_state == bp_call_disabled) 
-+			       b->enable_state == bp_call_disabled ||
-+			       b->enable_state == bp_startup_disabled)
- 			      ? " (disabled)"
- 			      : b->enable_state == bp_permanent 
- 			      ? " (permanent)"
-@@ -5009,6 +5010,61 @@ create_catchpoint (int tempflag, char *c
-   return b;
- }
- 
-+void
-+disable_breakpoints_at_startup (int silent)
-+{
-+  struct breakpoint *b;
-+  int disabled_startup_breaks = 0;
-+
-+  if (bfd_get_start_address (exec_bfd) != entry_point_address ())
-+    {
-+      ALL_BREAKPOINTS (b)
-+	{
-+	  if (((b->type == bp_breakpoint) ||
-+	       (b->type == bp_hardware_breakpoint)) &&
-+	      b->enable_state == bp_enabled &&
-+	      b->loc != NULL && !b->loc->duplicate)
-+	    {
-+	      b->enable_state = bp_startup_disabled;
-+	      if (!silent)
-+		{
-+		  if (!disabled_startup_breaks)
-+		    {
-+		      target_terminal_ours_for_output ();
-+		      warning ("Temporarily disabling breakpoints:");
-+		    }
-+		  disabled_startup_breaks = 1;
-+		  warning ("breakpoint #%d addr 0x%s", b->number, paddr_nz(b->loc->address));
-+		}
-+	    }
-+	}
-+    }
-+}
-+
-+/* Try to reenable any breakpoints after startup.  */
-+void
-+re_enable_breakpoints_at_startup (void)
-+{
-+  struct breakpoint *b;
-+
-+  if (bfd_get_start_address (exec_bfd) != entry_point_address ())
-+    {
-+      ALL_BREAKPOINTS (b)
-+	if (b->enable_state == bp_startup_disabled)
-+	  {
-+	    char buf[1];
-+
-+	    /* Do not reenable the breakpoint if the shared library
-+	       is still not mapped in.  */
-+	    if (target_read_memory (b->loc->address, buf, 1) == 0)
-+	      {
-+		/*printf ("enabling breakpoint at 0x%s\n", paddr_nz(b->loc->address));*/
-+		b->enable_state = bp_enabled;
-+	      }
-+	  }
-+    }
-+}
-+
- static void
- create_fork_vfork_event_catchpoint (int tempflag, char *cond_string,
-                                     struct breakpoint_ops *ops)
-Index: gdb-6.8.50.20090302/gdb/breakpoint.h
-===================================================================
---- gdb-6.8.50.20090302.orig/gdb/breakpoint.h	2009-05-10 21:36:27.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/breakpoint.h	2009-05-10 21:41:23.000000000 +0200
-@@ -127,6 +127,7 @@ enum enable_state
- 			   automatically enabled and reset when the call 
- 			   "lands" (either completes, or stops at another 
- 			   eventpoint). */
-+    bp_startup_disabled,
-     bp_permanent	/* There is a breakpoint instruction hard-wired into
- 			   the target's code.  Don't try to write another
- 			   breakpoint instruction on top of it, or restore
-@@ -847,6 +848,10 @@ extern void remove_thread_event_breakpoi
- 
- extern void disable_breakpoints_in_shlibs (void);
- 
-+extern void disable_breakpoints_at_startup (int silent);
-+
-+extern void re_enable_breakpoints_at_startup (void);
-+
- /* This function returns TRUE if ep is a catchpoint. */
- extern int ep_is_catchpoint (struct breakpoint *);
- 
-Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
-===================================================================
---- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c	2009-05-10 21:36:30.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/dwarf2read.c	2009-05-10 21:41:23.000000000 +0200
-@@ -1438,7 +1438,7 @@ dwarf2_build_psymtabs (struct objfile *o
-   else
-     dwarf2_per_objfile->loc_buffer = NULL;
+--- gdb-6.8.50.20090803.orig/gdb/dwarf2read.c	2009-08-03 21:39:39.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/dwarf2read.c	2009-08-03 21:39:39.000000000 +0200
+@@ -1659,7 +1659,7 @@ dwarf2_build_psymtabs (struct objfile *o
+   dwarf2_read_section (objfile, &dwarf2_per_objfile->eh_frame);
+   dwarf2_read_section (objfile, &dwarf2_per_objfile->frame);
  
 -  if (mainline
 +  if ((mainline == 1)
        || (objfile->global_psymbols.size == 0
  	  && objfile->static_psymbols.size == 0))
      {
-Index: gdb-6.8.50.20090302/gdb/elfread.c
+Index: gdb-6.8.50.20090803/gdb/elfread.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/elfread.c	2009-05-10 21:36:27.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/elfread.c	2009-05-10 21:41:23.000000000 +0200
-@@ -680,7 +680,7 @@ elf_symfile_read (struct objfile *objfil
+--- gdb-6.8.50.20090803.orig/gdb/elfread.c	2009-08-03 21:39:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/elfread.c	2009-08-03 21:39:39.000000000 +0200
+@@ -681,7 +681,7 @@ elf_symfile_read (struct objfile *objfil
    /* If we are reinitializing, or if we have never loaded syms yet,
       set table to empty.  MAINLINE is cleared so that *_read_psymtab
       functions do not all also re-initialize the psymbol table. */
@@ -370,29 +277,28 @@ Index: gdb-6.8.50.20090302/gdb/elfread.c
      {
        init_psymbol_list (objfile, 0);
        mainline = 0;
-Index: gdb-6.8.50.20090302/gdb/infrun.c
+Index: gdb-6.8.50.20090803/gdb/infrun.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/infrun.c	2009-05-10 21:36:30.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/infrun.c	2009-05-10 21:41:23.000000000 +0200
-@@ -3354,6 +3354,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
+--- gdb-6.8.50.20090803.orig/gdb/infrun.c	2009-08-03 21:39:38.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/infrun.c	2009-08-04 06:04:25.000000000 +0200
+@@ -3531,6 +3531,10 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
  #endif
  	  target_terminal_inferior ();
  
 +	  /* For PIE executables, we dont really know where the
-+	     breakpoints are going to be until we start up the
-+	     inferior.  */
-+          re_enable_breakpoints_at_startup ();
++	     breakpoints are going to be until we start up the inferior.  */
++	  enable_breakpoints_after_startup ();
 +
  	  /* If requested, stop when the dynamic linker notifies
  	     gdb of events.  This allows the user to get control
  	     and place breakpoints in initializer routines for
-Index: gdb-6.8.50.20090302/gdb/objfiles.c
+Index: gdb-6.8.50.20090803/gdb/objfiles.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/objfiles.c	2009-05-10 21:36:42.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/objfiles.c	2009-05-10 21:41:36.000000000 +0200
+--- gdb-6.8.50.20090803.orig/gdb/objfiles.c	2009-08-03 21:39:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/objfiles.c	2009-08-03 21:39:39.000000000 +0200
 @@ -52,6 +52,9 @@
  #include "exec.h"
- #include "varobj.h"
+ #include "observer.h"
  
 +#include "auxv.h"
 +#include "elf/common.h"
@@ -400,30 +306,27 @@ Index: gdb-6.8.50.20090302/gdb/objfiles.
  /* Prototypes for local functions */
  
  static void objfile_alloc_data (struct objfile *objfile);
-@@ -272,7 +275,19 @@ init_entry_point_info (struct objfile *o
+@@ -279,9 +282,17 @@ init_entry_point_info (struct objfile *o
  CORE_ADDR
  entry_point_address (void)
  {
--  return symfile_objfile ? symfile_objfile->ei.entry_point : 0;
 +  int ret;
-+  CORE_ADDR entry_addr;
 +
+   struct gdbarch *gdbarch;
+   CORE_ADDR entry_point;
+ 
 +  /* Find the address of the entry point of the program from the
 +     auxv vector.  */
-+  ret = target_auxv_search (&current_target, AT_ENTRY, &entry_addr);
++  ret = target_auxv_search (&current_target, AT_ENTRY, &entry_point);
 +  if (ret == 1)
-+     return entry_addr;                                                                              
-+  /*if (ret == 0 || ret == -1)*/
-+  else
-+    {
-+      return symfile_objfile ? symfile_objfile->ei.entry_point : 0;
-+    }
- }
++     return entry_point;                                                                              
++
+   if (symfile_objfile == NULL)
+     return 0;
  
- /* Create the terminating entry of OBJFILE's minimal symbol table.
-@@ -445,6 +460,9 @@ free_objfile (struct objfile *objfile)
-   if (objfile == rt_common_objfile)
-     rt_common_objfile = NULL;
+@@ -475,6 +486,9 @@ free_objfile (struct objfile *objfile)
+   if (objfile == symfile_objfile)
+     symfile_objfile = NULL;
  
 +  if (objfile == symfile_objfile)
 +    symfile_objfile = NULL;
@@ -431,11 +334,11 @@ Index: gdb-6.8.50.20090302/gdb/objfiles.
    /* Before the symbol table code was redone to make it easier to
       selectively load and remove information particular to a specific
       linkage unit, gdb used to do these things whenever the monolithic
-Index: gdb-6.8.50.20090302/gdb/solib-svr4.c
+Index: gdb-6.8.50.20090803/gdb/solib-svr4.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/solib-svr4.c	2009-05-10 21:36:29.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/solib-svr4.c	2009-05-10 21:41:23.000000000 +0200
-@@ -45,6 +45,7 @@
+--- gdb-6.8.50.20090803.orig/gdb/solib-svr4.c	2009-08-03 21:39:38.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/solib-svr4.c	2009-08-03 21:41:49.000000000 +0200
+@@ -47,6 +47,7 @@
  #include "exec.h"
  #include "auxv.h"
  #include "exceptions.h"
@@ -443,7 +346,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
  static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
  static int svr4_have_link_map_offsets (void);
-@@ -287,7 +288,9 @@ static CORE_ADDR main_lm_addr;
+@@ -359,7 +360,9 @@ solib_svr4_inferior_exit (int pid)
  
  /* Local function prototypes */
  
@@ -453,7 +356,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
  static CORE_ADDR bfd_lookup_symbol (bfd *, char *);
  
-@@ -521,10 +524,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
+@@ -600,10 +603,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
    int arch_size, step, sect_size;
    long dyn_tag;
    CORE_ADDR dyn_ptr, dyn_addr;
@@ -466,9 +369,9 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
    if (abfd == NULL)
      return 0;
-@@ -532,19 +537,81 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
+@@ -615,19 +620,81 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
    if (arch_size == -1)
-    return 0;
+     return 0;
  
 +  /* The auxv vector based relocatable files reading is limited to the main
 +     executable.  */
@@ -489,21 +392,21 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +
 +	  if (debug_solib)
 +	    fprintf_unfiltered (gdb_stdlog,
-+				"elf_locate_base: program entry address not found. Using bfd's 0x%s for %s\n",
-+				paddr_nz (entry_addr), exec_bfd->filename);
++				"elf_locate_base: program entry address not found. Using bfd's %s for %s\n",
++				paddress (target_gdbarch, entry_addr), exec_bfd->filename);
 +	}
 +      else
 +	{
 +	  if (debug_solib)
 +	    fprintf_unfiltered (gdb_stdlog,
-+				"elf_locate_base: found program entry address 0x%s for %s\n",
-+				paddr_nz (entry_addr), exec_bfd->filename);
++				"elf_locate_base: found program entry address %s for %s\n",
++				paddress (target_gdbarch, entry_addr), exec_bfd->filename);
 +	}
 +      reloc_addr = entry_addr - bfd_get_start_address (exec_bfd);
 +      if (debug_solib)
 +	fprintf_unfiltered (gdb_stdlog,
-+			    "elf_locate_base: expected relocation offset 0x%s for %s\n",
-+			    paddr_nz (reloc_addr), exec_bfd->filename);
++			    "elf_locate_base: expected relocation offset %s for %s\n",
++			    paddress (target_gdbarch, reloc_addr), exec_bfd->filename);
 +    }
 +
    /* Find the start address of the .dynamic section.  */
@@ -528,8 +431,8 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
    dyn_addr = bfd_section_vma (abfd, sect);
 +  if (debug_solib)
 +    fprintf_unfiltered (gdb_stdlog,
-+			"elf_locate_base: .dynamic addr 0x%s\n",
-+			paddr_nz (dyn_addr));
++			"elf_locate_base: .dynamic addr %s\n",
++			paddress (target_gdbarch, dyn_addr));
  
    /* Read in .dynamic from the BFD.  We will get the actual value
       from memory later.  */
@@ -550,7 +453,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
    /* Iterate over BUF and scan for DYNTAG.  If found, set PTR and return.  */
    step = (arch_size == 32) ? sizeof (Elf32_External_Dyn)
-@@ -565,26 +632,105 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
+@@ -648,26 +715,105 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
  	dyn_tag = bfd_h_get_64 (abfd, (bfd_byte *) x_dynp_64->d_tag);
  	dyn_ptr = bfd_h_get_64 (abfd, (bfd_byte *) x_dynp_64->d_un.d_ptr);
        }
@@ -573,7 +476,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +		  fprintf_unfiltered (gdb_stdlog,
 +				      "elf_locate_base: tag at offset 0x%lx does not match,"
 +				      " dropping relocation offset %s\n",
-+				      (unsigned long) (buf - bufstart), paddr_nz (reloc_addr));
++				      (unsigned long) (buf - bufstart), paddress (target_gdbarch, reloc_addr));
 +		reloc_addr = 0;
 +	      }
 +	  }
@@ -583,7 +486,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +	      fprintf_unfiltered (gdb_stdlog,
 +				  "elf_locate_base: tag at offset 0x%lx is not readable,"
 +				  " dropping relocation offset %s\n",
-+				  (unsigned long) (buf - bufstart), paddr_nz (reloc_addr));
++				  (unsigned long) (buf - bufstart), paddress (target_gdbarch, reloc_addr));
 +	    reloc_addr = 0;
 +	  }
 +      }
@@ -623,14 +526,14 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +	      {
 +		if (debug_solib)
 +		  fprintf_unfiltered (gdb_stdlog,
-+				      "elf_locate_base: unrelocated ptr addr 0x%s\n",
-+				      paddr_nz (ptr_addr));
++				      "elf_locate_base: unrelocated ptr addr %s\n",
++				      paddress (target_gdbarch, ptr_addr));
 +		ptr_addr += reloc_addr;
 +		if (debug_solib) 
 +		  fprintf_unfiltered (gdb_stdlog, 
-+				      "elf_locate_base: relocated ptr addr 0x%s"
++				      "elf_locate_base: relocated ptr addr %s"
 +				      " (relocation offset %s) for %s\n",
-+				      paddr_nz (ptr_addr), paddr_nz (reloc_addr),
++				      paddress (target_gdbarch, ptr_addr), paddress (target_gdbarch, reloc_addr),
 +				      exec_bfd->filename);
 +	      }
 +	    got = target_read_memory (ptr_addr, ptr_buf, arch_size / 8);
@@ -639,9 +542,9 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +		ptr_addr -= reloc_addr;
 +		if (debug_solib) 
 +		  fprintf_unfiltered (gdb_stdlog, 
-+				      "elf_locate_base: unrelocated back to ptr addr 0x%s"
++				      "elf_locate_base: unrelocated back to ptr addr %s"
 +				      " as the memory was unreable for %s\n",
-+				      paddr_nz (ptr_addr), exec_bfd->filename);
++				      paddress (target_gdbarch, ptr_addr), exec_bfd->filename);
 +		got = target_read_memory (ptr_addr, ptr_buf, arch_size / 8);
 +	      }
 +
@@ -655,8 +558,8 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +		  {
 +		    if (debug_solib)
 +		      fprintf_unfiltered (gdb_stdlog,
-+					  "elf_locate_base: Tag entry has value 0x%s -- return now\n",
-+					  paddr_nz (dyn_ptr));
++					  "elf_locate_base: Tag entry has value %s -- return now\n",
++					  paddress (target_gdbarch, dyn_ptr));
 +		  }
 +	      }
 +	    else
@@ -675,33 +578,22 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
    }
  
    return 0;
-@@ -774,6 +920,10 @@ solib_svr4_r_map (void)
-   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
-   struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
- 
-+  if (debug_solib)
-+    fprintf_unfiltered (gdb_stdlog, 
-+                        "solib_svr4_r_map: read at 0x%s\n",
-+                        paddr_nz (debug_base + lmo->r_map_offset));
-   return read_memory_typed_address (debug_base + lmo->r_map_offset, ptr_type);
- }
- 
-@@ -945,6 +1095,11 @@ svr4_current_sos (void)
-   struct so_list *head = 0;
-   struct so_list **link_ptr = &head;
+@@ -1040,6 +1186,11 @@ svr4_current_sos (void)
    CORE_ADDR ldsomap = 0;
+   struct inferior *inf;
+   struct svr4_info *info;
 +  const char *filename = exec_bfd ? exec_bfd->filename : "<none>";
 +
 +  if (debug_solib)
 +    fprintf_unfiltered (gdb_stdlog, 
 +                        "svr4_current_sos: exec_bfd %s\n", filename);
  
-   /* Always locate the debug struct, in case it has moved.  */
-   debug_base = 0;
-@@ -953,10 +1108,19 @@ svr4_current_sos (void)
+   if (ptid_equal (inferior_ptid, null_ptid))
+     return NULL;
+@@ -1054,7 +1205,13 @@ svr4_current_sos (void)
    /* If we can't find the dynamic linker's base structure, this
       must not be a dynamically linked executable.  Hmm.  */
-   if (! debug_base)
+   if (! info->debug_base)
 -    return svr4_default_sos ();
 +    {
 +      if (debug_solib)
@@ -713,19 +605,13 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
    /* Walk the inferior's link map list, and build our list of
       `struct so_list' nodes.  */
-+  if (debug_solib)
-+    fprintf_unfiltered (gdb_stdlog, 
-+			"svr4_current_sos: walk link map in %s\n", filename);
-   lm = solib_svr4_r_map ();
- 
-   while (lm)
-@@ -973,26 +1137,104 @@ svr4_current_sos (void)
+@@ -1074,26 +1231,104 @@ svr4_current_sos (void)
        new->lm_info->lm = xzalloc (lmo->link_map_size);
        make_cleanup (xfree, new->lm_info->lm);
  
 +      if (debug_solib)
 +        fprintf_unfiltered (gdb_stdlog, 
-+                            "svr4_current_sos: read lm at 0x%s\n", paddr_nz(lm));
++                            "svr4_current_sos: read lm at %s\n", paddress (target_gdbarch, lm));
        read_memory (lm, new->lm_info->lm, lmo->link_map_size);
  
        lm = LM_NEXT (new);
@@ -743,7 +629,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 -      if (IGNORE_FIRST_LINK_MAP_ENTRY (new) && ldsomap == 0)
 +      if (exec_bfd != NULL && IGNORE_FIRST_LINK_MAP_ENTRY (new) && ldsomap == 0)
  	{
--	  main_lm_addr = new->lm_info->lm_addr;
+-	  info->main_lm_addr = new->lm_info->lm_addr;
 -	  free_so (new);
 -	}
 +          /* It is the first link map entry, i.e. it is the main executable.  */
@@ -751,7 +637,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +	  if (bfd_get_start_address (exec_bfd) == entry_point_address ())
 +	    {
 +	      /* Non-pie case, main executable has not been relocated.  */
-+	      main_lm_addr = new->lm_info->lm_addr;
++	      info->main_lm_addr = new->lm_info->lm_addr;
 +	      free_so (new);
 +	    }
 +	  else
@@ -828,7 +714,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  	  target_read_string (LM_NAME (new), &buffer,
  			      SO_NAME_MAX_PATH_SIZE - 1, &errcode);
  	  if (errcode != 0)
-@@ -1000,47 +1242,60 @@ svr4_current_sos (void)
+@@ -1101,47 +1336,60 @@ svr4_current_sos (void)
  		     safe_strerror (errcode));
  	  else
  	    {
@@ -922,7 +808,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  	}
  
        /* On Solaris, the dynamic linker is not in the normal list of
-@@ -1056,6 +1311,9 @@ svr4_current_sos (void)
+@@ -1157,6 +1405,9 @@ svr4_current_sos (void)
    if (head == NULL)
      return svr4_default_sos ();
  
@@ -932,7 +818,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
    return head;
  }
  
-@@ -1087,7 +1345,7 @@ svr4_fetch_objfile_link_map (struct objf
+@@ -1189,7 +1440,7 @@ svr4_fetch_objfile_link_map (struct objf
  /* On some systems, the only way to recognize the link map entry for
     the main executable file is by looking at its name.  Return
     non-zero iff SONAME matches one of the known main executable names.  */
@@ -941,7 +827,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  static int
  match_main (char *soname)
  {
-@@ -1101,6 +1359,7 @@ match_main (char *soname)
+@@ -1203,6 +1454,7 @@ match_main (char *soname)
  
    return (0);
  }
@@ -949,7 +835,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
  /* Return 1 if PC lies in the dynamic symbol resolution code of the
     SVR4 run time loader.  */
-@@ -1251,15 +1510,29 @@ enable_break (void)
+@@ -1354,15 +1606,29 @@ enable_break (struct svr4_info *info)
    /* Find the program interpreter; if not found, warn the user and drop
       into the old breakpoint at symbol code.  */
    interp_name = find_program_interpreter ();
@@ -979,7 +865,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
        sym_addr = 0;
  
-@@ -1276,6 +1549,9 @@ enable_break (void)
+@@ -1379,6 +1645,9 @@ enable_break (struct svr4_info *info)
          {
  	  tmp_bfd = solib_bfd_open (interp_name);
  	}
@@ -989,7 +875,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
        if (tmp_bfd == NULL)
  	goto bkpt_at_symbol;
  
-@@ -1329,16 +1605,16 @@ enable_break (void)
+@@ -1436,16 +1705,16 @@ enable_break (struct svr4_info *info)
        interp_sect = bfd_get_section_by_name (tmp_bfd, ".text");
        if (interp_sect)
  	{
@@ -1010,29 +896,25 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  	  interp_plt_sect_high =
  	    interp_plt_sect_low + bfd_section_size (tmp_bfd, interp_sect);
  	}
-@@ -1373,7 +1649,11 @@ enable_break (void)
+@@ -1480,7 +1749,7 @@ enable_break (struct svr4_info *info)
  
        if (sym_addr != 0)
  	{
--	  create_solib_event_breakpoint (load_addr + sym_addr);
-+	  create_solib_event_breakpoint ((load_addr + sym_addr)
-+					 & load_addr_mask);
-+	  if (debug_solib)
-+	    fprintf_unfiltered (gdb_stdlog,
-+			       "enable_break: solib bp set\n");
+-	  create_solib_event_breakpoint (target_gdbarch, load_addr + sym_addr);
++	  create_solib_event_breakpoint (target_gdbarch, (load_addr + sym_addr) & load_addr_mask);
  	  xfree (interp_name);
  	  return 1;
  	}
-@@ -1639,6 +1919,8 @@ svr4_solib_create_inferior_hook (void)
+@@ -1753,6 +2022,8 @@ svr4_solib_create_inferior_hook (void)
    while (tp->stop_signal != TARGET_SIGNAL_TRAP);
    inf->stop_soon = NO_STOP_QUIETLY;
  #endif /* defined(_SCO_DS) */
 +
-+   disable_breakpoints_at_startup (1);
++  disable_breakpoints_before_startup ();
  }
  
  static void
-@@ -1820,6 +2102,75 @@ svr4_lp64_fetch_link_map_offsets (void)
+@@ -1929,6 +2200,76 @@ svr4_lp64_fetch_link_map_offsets (void)
  
    return lmp;
  }
@@ -1040,16 +922,17 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +info_linkmap_command (char *cmd, int from_tty)
 +{
 +  CORE_ADDR lm;
++  struct svr4_info *info = get_svr4_info (PIDGET (inferior_ptid));
 +                                                                                
 +  /* Make sure we've looked up the inferior's dynamic linker's base
 +     structure.  */
-+  if (! debug_base)
++  if (! info->debug_base)
 +    {
-+      debug_base = locate_base ();
++      info->debug_base = locate_base (info);
 +                                                                                
 +      /* If we can't find the dynamic linker's base structure, this
 +         must not be a dynamically linked executable.  Hmm.  */
-+      if (! debug_base)
++      if (! info->debug_base)
 +        {
 +          if (debug_solib)
 +            fprintf_unfiltered (gdb_stdlog,
@@ -1061,7 +944,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +                                                                                
 +  /* Walk the inferior's link map list, and print the info.  */
 + 
-+  lm = solib_svr4_r_map ();
++  lm = solib_svr4_r_map (info);
 +  while (lm)
 +    {
 +      int errcode;
@@ -1084,7 +967,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +
 +      if (debug_solib)
 +        fprintf_unfiltered (gdb_stdlog,
-+                            "svr4_print_linkmap: read lm at 0x%s\n", paddr_nz(lm));
++                            "svr4_print_linkmap: read lm at %s\n", paddress (target_gdbarch, lm));
 +      read_memory (lm, new->lm_info->lm, lmo->link_map_size);
 +
 +      lm = LM_NEXT (new);
@@ -1100,7 +983,7 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
 +	  warning ("svr4_print_linkmap: Can't read pathname for load map: %s\n",
 +		   safe_strerror (errcode));
 +	}
-+      fprintf_filtered (gdb_stdout, "%-8s %-30s\n", paddr(load_addr), buffer);
++      fprintf_filtered (gdb_stdout, "%-8s %-30s\n", paddress (target_gdbarch, load_addr), buffer);
 +      do_cleanups (old_chain);
 +    }
 +}                                                                                
@@ -1108,18 +991,18 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  
  
  struct target_so_ops svr4_so_ops;
-@@ -1859,4 +2210,7 @@ _initialize_svr4_solib (void)
-   svr4_so_ops.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code;
-   svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
+@@ -1969,4 +2310,7 @@ _initialize_svr4_solib (void)
    svr4_so_ops.same = svr4_same;
+ 
+   observer_attach_inferior_exit (solib_svr4_inferior_exit);
 +
 +  add_info ("linkmap", info_linkmap_command,
 +	    "Display the inferior's linkmap.");
  }
-Index: gdb-6.8.50.20090302/gdb/solib.c
+Index: gdb-6.8.50.20090803/gdb/solib.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/solib.c	2009-02-21 17:14:49.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/solib.c	2009-05-10 21:41:23.000000000 +0200
+--- gdb-6.8.50.20090803.orig/gdb/solib.c	2009-08-03 21:39:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/solib.c	2009-08-04 05:57:36.000000000 +0200
 @@ -81,6 +81,8 @@ set_solib_ops (struct gdbarch *gdbarch, 
  
  /* external data declarations */
@@ -1138,7 +1021,7 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
  /*
  
     GLOBAL FUNCTION
-@@ -426,10 +430,23 @@ free_so (struct so_list *so)
+@@ -428,10 +432,23 @@ free_so (struct so_list *so)
        
    if (so->abfd)
      {
@@ -1166,7 +1049,7 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
      }
  
    if (bfd_filename)
-@@ -460,15 +477,40 @@ symbol_add_stub (void *arg)
+@@ -458,15 +475,40 @@ symbol_add_stub (struct so_list *so, int
    /* Have we already loaded this shared object?  */
    ALL_OBJFILES (so->objfile)
      {
@@ -1174,7 +1057,7 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
 +      /* Found an already loaded shared library.  */
 +      if (strcmp (so->objfile->name, so->so_name) == 0
 +	  && !so->main)
-+	return 1;
++	return;
 +      /* Found an already loaded main executable.  This could happen in
 +	 two circumstances.
 +	 First case: the main file has already been read in
@@ -1186,31 +1069,31 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
 +      if (strcmp (so->objfile->name, so->so_name) == 0
 +	  && so->main
 +	  && so->main_relocated)
- 	return 1;
+ 	return;
      }
  
    sap = build_section_addr_info_from_section_table (so->sections,
                                                      so->sections_end);
  
--  so->objfile = symbol_file_add_from_bfd (so->abfd, so->from_tty,
--					  sap, 0, OBJF_SHARED | OBJF_KEEPBFD);
+-  so->objfile = symbol_file_add_from_bfd (so->abfd, flags,
+-					  sap, OBJF_SHARED | OBJF_KEEPBFD);
 +  if (so->main)
 +    {
 +      if (debug_solib)
 +        fprintf_unfiltered (gdb_stdlog,
 +			    "symbol_add_stub: adding symbols for main\n");
-+      so->objfile = symbol_file_add_from_bfd (so->abfd, /*so->from_tty*/ 0,
-+					      sap, 1, OBJF_KEEPBFD);
++      so->objfile = symbol_file_add_from_bfd (so->abfd, (flags & ~SYMFILE_VERBOSE) | SYMFILE_MAINLINE,
++					      sap, OBJF_KEEPBFD);
 +      so->main_relocated = 1;
 +    }
 +  else
-+    so->objfile = symbol_file_add_from_bfd (so->abfd, so->from_tty,
-+					    sap, 0, OBJF_SHARED | OBJF_KEEPBFD);
++    so->objfile = symbol_file_add_from_bfd (so->abfd, flags,
++					    sap, OBJF_SHARED | OBJF_KEEPBFD);
 +
    free_section_addr_info (sap);
  
-   return (1);
-@@ -600,6 +642,10 @@ update_solib_list (int from_tty, struct 
+   return;
+@@ -606,6 +648,10 @@ update_solib_list (int from_tty, struct 
  	    }
  	  else
  	    {
@@ -1221,7 +1104,7 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
  	      if (! strcmp (gdb->so_original_name, i->so_original_name))
  		break;	      
  	    }
-@@ -654,28 +700,7 @@ update_solib_list (int from_tty, struct 
+@@ -660,18 +706,7 @@ update_solib_list (int from_tty, struct 
        /* Fill in the rest of each of the `struct so_list' nodes.  */
        for (i = inferior; i; i = i->next)
  	{
@@ -1232,26 +1115,16 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
 -			"Error while mapping shared library sections:\n",
 -			RETURN_MASK_ALL);
 -
--	  /* If requested, add the shared object's sections to the TARGET's
--	     section table.  Do this immediately after mapping the object so
--	     that later nodes in the list can query this object, as is needed
--	     in solib-osf.c.  */
--	  if (target)
--	    {
--	      int count = (i->sections_end - i->sections);
--	      if (count > 0)
--		{
--		  int space = target_resize_to_sections (target, count);
--		  memcpy (target->to_sections + space,
--			  i->sections,
--			  count * sizeof (i->sections[0]));
--		}
--	    }
-+   	  add_to_target_sections (from_tty, target, i);
+-	  /* Add the shared object's sections to the current set of
+-	     file section tables.  Do this immediately after mapping
+-	     the object so that later nodes in the list can query this
+-	     object, as is needed in solib-osf.c.  */
+-	  add_target_sections (i->sections, i->sections_end);
++	  add_to_target_sections (from_tty, target, i);
  
  	  /* Notify any observer that the shared object has been
               loaded now that we've added it to GDB's tables.  */
-@@ -771,6 +796,41 @@ solib_add (char *pattern, int from_tty, 
+@@ -781,6 +816,32 @@ solib_add (char *pattern, int from_tty, 
    }
  }
  
@@ -1267,33 +1140,24 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
 +
 +  /* Fill in the rest of the `struct so_list' node.  */
 +  catch_errors (solib_map_sections, solib,
-+		"Error while mapping shared library sections:\n",
-+		RETURN_MASK_ALL);
++	       "Error while mapping shared library sections:\n",
++	       RETURN_MASK_ALL);
 +
-+  /* If requested, add the shared object's sections to the TARGET's
-+     section table.  Do this immediately after mapping the object so
-+     that later nodes in the list can query this object, as is needed
-+     in solib-osf.c.  */
-+  if (target)
-+    {
-+      int count = (solib->sections_end - solib->sections);
-+      if (count > 0)
-+	{
-+	  int space = target_resize_to_sections (target, count);
-+          if (debug_solib)
-+             fprintf_unfiltered (gdb_stdlog,
-+                                 "add_to_target_sections: add %s to to_sections\n",
-+                                 solib->so_original_name);
-+	  memcpy (target->to_sections + space,
-+		  solib->sections,
-+		  count * sizeof (solib->sections[0]));
-+	}
-+    }
++  if (debug_solib)
++     fprintf_unfiltered (gdb_stdlog,
++			 "add_to_target_sections: add %s to to_sections\n",
++			 solib->so_original_name);
++
++  /* Add the shared object's sections to the current set of
++     file section tables.  Do this immediately after mapping
++     the object so that later nodes in the list can query this
++     object, as is needed in solib-osf.c.  */
++  add_target_sections (solib->sections, solib->sections_end);
 +}
  
  /*
  
-@@ -1089,4 +1149,12 @@ This takes precedence over the environme
+@@ -1134,4 +1195,12 @@ This takes precedence over the environme
  				     reload_shared_libraries,
  				     show_solib_search_path,
  				     &setlist, &showlist);
@@ -1306,10 +1170,10 @@ Index: gdb-6.8.50.20090302/gdb/solib.c
 +			   NULL, NULL,
 +			   &setdebuglist, &showdebuglist);
  }
-Index: gdb-6.8.50.20090302/gdb/solist.h
+Index: gdb-6.8.50.20090803/gdb/solist.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/solist.h	2009-02-04 09:42:11.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/solist.h	2009-05-10 21:41:23.000000000 +0200
+--- gdb-6.8.50.20090803.orig/gdb/solist.h	2009-08-03 21:39:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/solist.h	2009-08-03 21:39:39.000000000 +0200
 @@ -61,6 +61,8 @@ struct so_list
      bfd *abfd;
      char symbols_loaded;	/* flag: symbols read in yet? */
@@ -1317,10 +1181,10 @@ Index: gdb-6.8.50.20090302/gdb/solist.h
 +    char main;                  /* flag: is this the main executable? */
 +    char main_relocated;        /* flag: has it been relocated yet? */
      struct objfile *objfile;	/* objfile for loaded lib */
-     struct section_table *sections;
-     struct section_table *sections_end;
-@@ -149,4 +151,10 @@ struct symbol *solib_global_lookup (cons
- 				    const char *linkage_name,
+     struct target_section *sections;
+     struct target_section *sections_end;
+@@ -147,4 +149,10 @@ struct symbol *solib_global_lookup (cons
+ 				    const char *name,
  				    const domain_enum domain);
  
 +/* Add the list of sections in so_list to the target to_sections.  */
@@ -1330,24 +1194,24 @@ Index: gdb-6.8.50.20090302/gdb/solist.h
 +extern int debug_solib;
 +
  #endif
-Index: gdb-6.8.50.20090302/gdb/symfile-mem.c
+Index: gdb-6.8.50.20090803/gdb/symfile-mem.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile-mem.c	2009-05-10 21:36:28.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/symfile-mem.c	2009-05-10 21:41:23.000000000 +0200
-@@ -116,7 +116,7 @@ symbol_file_add_from_memory (struct bfd 
+--- gdb-6.8.50.20090803.orig/gdb/symfile-mem.c	2009-08-03 21:39:38.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile-mem.c	2009-08-03 21:39:39.000000000 +0200
+@@ -115,7 +115,7 @@ symbol_file_add_from_memory (struct bfd 
+ 	++i;
        }
  
-   objf = symbol_file_add_from_bfd (nbfd, from_tty,
--                                   sai, 0, OBJF_SHARED);
-+                                   sai, 2, OBJF_SHARED);
+-  objf = symbol_file_add_from_bfd (nbfd, from_tty ? SYMFILE_VERBOSE : 0,
++  objf = symbol_file_add_from_bfd (nbfd, (from_tty ? SYMFILE_VERBOSE : 0) | SYMFILE_MAINLINE2_BOTH,
+                                    sai, OBJF_SHARED);
  
    /* This might change our ideas about frames already looked at.  */
-   reinit_frame_cache ();
-Index: gdb-6.8.50.20090302/gdb/symfile.c
+Index: gdb-6.8.50.20090803/gdb/symfile.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile.c	2009-05-10 21:37:51.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/symfile.c	2009-05-10 21:41:23.000000000 +0200
-@@ -47,6 +47,7 @@
+--- gdb-6.8.50.20090803.orig/gdb/symfile.c	2009-08-03 21:39:38.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile.c	2009-08-04 06:02:45.000000000 +0200
+@@ -49,6 +49,7 @@
  #include "readline/readline.h"
  #include "gdb_assert.h"
  #include "block.h"
@@ -1355,16 +1219,16 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  #include "observer.h"
  #include "exec.h"
  #include "parser-defs.h"
-@@ -787,7 +788,7 @@ syms_from_objfile (struct objfile *objfi
+@@ -785,7 +786,7 @@ syms_from_objfile (struct objfile *objfi
  
    /* Now either addrs or offsets is non-zero.  */
  
 -  if (mainline)
-+  if (mainline == 1)
++  if ((add_flags & SYMFILE_MAINLINE) && !(add_flags & SYMFILE_MAINLINE2_ONLY))
      {
        /* We will modify the main symbol table, make sure that all its users
           will be cleaned up if an error occurs during symbol reading.  */
-@@ -815,7 +816,7 @@ syms_from_objfile (struct objfile *objfi
+@@ -813,7 +814,7 @@ syms_from_objfile (struct objfile *objfi
  
       We no longer warn if the lowest section is not a text segment (as
       happens for the PA64 port.  */
@@ -1373,20 +1237,30 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
      {
        asection *lower_sect;
        asection *sect;
-@@ -917,17 +918,21 @@ new_symfile_objfile (struct objfile *obj
+@@ -896,7 +897,7 @@ syms_from_objfile (struct objfile *objfi
+       init_objfile_sect_indices (objfile);
+     }
+ 
+-  (*objfile->sf->sym_read) (objfile, mainline);
++  (*objfile->sf->sym_read) (objfile, add_flags & SYMFILE_MAINLINE2_ONLY ? 2 : (add_flags & SYMFILE_MAINLINE ? 1 : 0));
+ 
+   /* Discard cleanups as symbol reading was successful.  */
+ 
+@@ -915,17 +916,22 @@ new_symfile_objfile (struct objfile *obj
    /* If this is the main symbol file we have to clean up all users of the
       old main symbol file. Otherwise it is sufficient to fixup all the
       breakpoints that may have been redefined by this symbol file.  */
--  if (mainline)
-+  if (mainline == 1)
+-  if (add_flags & SYMFILE_MAINLINE)
++  if (add_flags & SYMFILE_MAINLINE && !(add_flags & SYMFILE_MAINLINE2_ONLY))
      {
        /* OK, make it the "real" symbol file.  */
        symfile_objfile = objfile;
  
        clear_symtab_users ();
      }
--  else
-+  else if (mainline == 0)
+-  else if ((add_flags & SYMFILE_DEFER_BP_RESET) == 0)
++  else if ((add_flags & SYMFILE_DEFER_BP_RESET) == 0
++           && (add_flags & SYMFILE_MAINLINE2_BOTH) == 0)
      {
        breakpoint_re_set ();
      }
@@ -1396,28 +1270,27 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
 +    }
  
    /* We're done reading the symbol file; finish off complaints.  */
-   clear_complaints (&symfile_complaints, 0, verbo);
-@@ -982,7 +987,7 @@ symbol_file_add_with_addrs_or_offsets (b
+   clear_complaints (&symfile_complaints, 0, add_flags & SYMFILE_VERBOSE);
+@@ -982,7 +988,7 @@ symbol_file_add_with_addrs_or_offsets (b
    /* Give user a chance to burp if we'd be
       interactively wiping out any existing symbols.  */
  
--  if (mainline
-+  if (mainline == 1
+-  if ((add_flags & SYMFILE_MAINLINE)
++  if ((add_flags & SYMFILE_MAINLINE) && !(add_flags & SYMFILE_MAINLINE2_ONLY)
+       && (have_full_symbols () || have_partial_symbols ())
        && from_tty
        && (have_full_symbols () || have_partial_symbols ())
-       && !query (_("Load new symbol table from \"%s\"? "), name))
-@@ -1178,6 +1183,10 @@ symbol_file_clear (int from_tty)
+@@ -1183,6 +1189,9 @@ symbol_file_clear (int from_tty)
  		    symfile_objfile->name)
  	  : !query (_("Discard symbol table? "))))
      error (_("Not confirmed."));
 +#ifdef CLEAR_SOLIB
 +      CLEAR_SOLIB ();
 +#endif
-+
-     free_all_objfiles ();
  
-     /* solib descriptors may have handles to objfiles.  Since their
-@@ -3367,6 +3376,8 @@ reread_symbols (void)
+   free_all_objfiles ();
+ 
+@@ -3380,6 +3389,8 @@ reread_symbols (void)
  	      /* Discard cleanups as symbol reading was successful.  */
  	      discard_cleanups (old_cleanups);
  
@@ -1426,11 +1299,11 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  	      /* If the mtime has changed between the time we set new_modtime
  	         and now, we *want* this to be out of date, so don't call stat
  	         again now.  */
-Index: gdb-6.8.50.20090302/gdb/target.h
+Index: gdb-6.8.50.20090803/gdb/target.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/target.h	2009-05-10 21:36:29.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/target.h	2009-05-10 21:41:23.000000000 +0200
-@@ -542,7 +542,7 @@ struct target_ops
+--- gdb-6.8.50.20090803.orig/gdb/target.h	2009-08-03 21:39:39.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/target.h	2009-08-03 21:39:39.000000000 +0200
+@@ -524,7 +524,7 @@ struct target_ops
         Return -1 if there is insufficient buffer for a whole entry.
         Return 1 if an entry was read into *TYPEP and *VALP.  */
      int (*to_auxv_parse) (struct target_ops *ops, gdb_byte **readptr,
@@ -1439,3 +1312,22 @@ Index: gdb-6.8.50.20090302/gdb/target.h
  
      /* Search SEARCH_SPACE_LEN bytes beginning at START_ADDR for the
         sequence of bytes in PATTERN with length PATTERN_LEN.
+Index: gdb-6.8.50.20090803/gdb/symfile.h
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/symfile.h	2009-08-03 21:39:38.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile.h	2009-08-03 21:39:39.000000000 +0200
+@@ -229,7 +229,13 @@ enum symfile_add_flags
+     SYMFILE_MAINLINE = 1 << 2,
+ 
+     /* Do not call breakpoint_re_set when adding this symbol file.  */
+-    SYMFILE_DEFER_BP_RESET = 1 << 3
++    SYMFILE_DEFER_BP_RESET = 1 << 3,
++
++    /* Red Hat PIE patch: Like SYMFILE_MAINLINE but for mainline == 2.
++       Former code was checking `if (mainline)' being satisfied both by
++       standard 1 and rare 2, simulate it here.  */
++    SYMFILE_MAINLINE2_ONLY = 1 << 4,
++    SYMFILE_MAINLINE2_BOTH = SYMFILE_MAINLINE2_ONLY | SYMFILE_MAINLINE
+   };
+ 
+ extern void syms_from_objfile (struct objfile *,

gdb-6.3-ppc64syscall-20040622.patch:
 rs6000-tdep.c |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 54 insertions(+), 3 deletions(-)

Index: gdb-6.3-ppc64syscall-20040622.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ppc64syscall-20040622.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- gdb-6.3-ppc64syscall-20040622.patch	14 Jul 2008 09:09:04 -0000	1.4
+++ gdb-6.3-ppc64syscall-20040622.patch	4 Aug 2009 05:37:27 -0000	1.5
@@ -6,11 +6,11 @@
 	use to skip over first half of a GNU/Linux syscall and update
 	"func_start".
 
-Index: gdb-6.8/gdb/rs6000-tdep.c
+Index: gdb-6.8.50.20090802/gdb/rs6000-tdep.c
 ===================================================================
---- gdb-6.8.orig/gdb/rs6000-tdep.c	2008-02-20 15:34:43.000000000 +0100
-+++ gdb-6.8/gdb/rs6000-tdep.c	2008-07-14 10:25:29.000000000 +0200
-@@ -124,6 +124,7 @@ static const char *powerpc_vector_abi_st
+--- gdb-6.8.50.20090802.orig/gdb/rs6000-tdep.c	2009-07-31 17:23:20.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/rs6000-tdep.c	2009-08-03 09:52:39.000000000 +0200
+@@ -126,6 +126,7 @@ static const char *powerpc_vector_abi_st
  
  struct rs6000_framedata
    {
@@ -18,7 +18,7 @@ Index: gdb-6.8/gdb/rs6000-tdep.c
      int offset;			/* total size of frame --- the distance
  				   by which we decrement sp to allocate
  				   the frame */
-@@ -1262,7 +1263,6 @@ static CORE_ADDR
+@@ -1488,7 +1489,6 @@ static CORE_ADDR
  skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
  	       struct rs6000_framedata *fdata)
  {
@@ -26,7 +26,7 @@ Index: gdb-6.8/gdb/rs6000-tdep.c
    CORE_ADDR last_prologue_pc = pc;
    CORE_ADDR li_found_pc = 0;
    gdb_byte buf[4];
-@@ -1280,11 +1280,13 @@ skip_prologue (struct gdbarch *gdbarch, 
+@@ -1506,12 +1506,14 @@ skip_prologue (struct gdbarch *gdbarch, 
    int minimal_toc_loaded = 0;
    int prev_insn_was_prologue_insn = 1;
    int num_skip_non_prologue_insns = 0;
@@ -34,15 +34,16 @@ Index: gdb-6.8/gdb/rs6000-tdep.c
    int r0_contains_arg = 0;
    const struct bfd_arch_info *arch_info = gdbarch_bfd_arch_info (gdbarch);
    struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
  
    memset (fdata, 0, sizeof (struct rs6000_framedata));
 +  fdata->func_start = pc;
    fdata->saved_gpr = -1;
    fdata->saved_fpr = -1;
    fdata->saved_vr = -1;
-@@ -1313,6 +1315,55 @@ skip_prologue (struct gdbarch *gdbarch, 
+@@ -1545,6 +1547,55 @@ skip_prologue (struct gdbarch *gdbarch, 
  	break;
-       op = extract_unsigned_integer (buf, 4);
+       op = extract_unsigned_integer (buf, 4, byte_order);
  
 +      /* A PPC64 GNU/Linux system call function is split into two
 +	 sub-functions: a non-threaded fast-path (__NAME_nocancel)
@@ -96,7 +97,7 @@ Index: gdb-6.8/gdb/rs6000-tdep.c
        if ((op & 0xfc1fffff) == 0x7c0802a6)
  	{			/* mflr Rx */
  	  /* Since shared library / PIC code, which needs to get its
-@@ -1486,9 +1537,9 @@ skip_prologue (struct gdbarch *gdbarch, 
+@@ -1726,9 +1777,9 @@ skip_prologue (struct gdbarch *gdbarch, 
  	     we have no line table information or the line info tells
  	     us that the subroutine call is not part of the line
  	     associated with the prologue.  */

gdb-6.3-ppcdotsolib-20041022.patch:
 solib-svr4.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Index: gdb-6.3-ppcdotsolib-20041022.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ppcdotsolib-20041022.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- gdb-6.3-ppcdotsolib-20041022.patch	1 Nov 2007 20:24:20 -0000	1.2
+++ gdb-6.3-ppcdotsolib-20041022.patch	4 Aug 2009 05:37:27 -0000	1.3
@@ -8,11 +8,11 @@
 
 	Port to GDB-6.7.
  	
-Index: gdb-6.7/gdb/solib-svr4.c
+Index: gdb-6.8.50.20090802/gdb/solib-svr4.c
 ===================================================================
---- gdb-6.7.orig/gdb/solib-svr4.c	2007-10-09 20:03:30.000000000 +0200
-+++ gdb-6.7/gdb/solib-svr4.c	2007-10-12 22:34:03.000000000 +0200
-@@ -1089,7 +1089,15 @@ enable_break (void)
+--- gdb-6.8.50.20090802.orig/gdb/solib-svr4.c	2009-08-03 10:03:36.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/solib-svr4.c	2009-08-03 10:51:15.000000000 +0200
+@@ -1431,7 +1431,15 @@ enable_break (struct svr4_info *info)
  	{
  	  sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep);
  	  if (sym_addr != 0)
@@ -20,7 +20,7 @@ Index: gdb-6.7/gdb/solib-svr4.c
 +	    {
 +	      /* The symbol might be a descriptor, convert to into the
 +		 corresponding code address.  */
-+	      sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch,
++	      sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch,
 +							     sym_addr,
 +							     tmp_bfd_target);
 +	      if (sym_addr != 0)

gdb-6.3-readnever-20050907.patch:
 doc/gdb.texinfo |    6 ++++++
 dwarf2read.c    |    4 +++-
 main.c          |    2 ++
 symfile.c       |    1 +
 top.h           |    1 +
 5 files changed, 13 insertions(+), 1 deletion(-)

Index: gdb-6.3-readnever-20050907.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-readnever-20050907.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- gdb-6.3-readnever-20050907.patch	10 Jun 2009 13:05:56 -0000	1.6
+++ gdb-6.3-readnever-20050907.patch	4 Aug 2009 05:37:27 -0000	1.7
@@ -11,11 +11,11 @@
 
         * gdb.texinfo (File Options): Document --readnever.
 
-Index: gdb-6.8.50.20090302/gdb/doc/gdb.texinfo
+Index: gdb-6.8.50.20090802/gdb/doc/gdb.texinfo
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/doc/gdb.texinfo	2009-05-09 20:00:02.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/doc/gdb.texinfo	2009-05-09 20:00:06.000000000 +0200
-@@ -988,6 +988,12 @@ Read each symbol file's entire symbol ta
+--- gdb-6.8.50.20090802.orig/gdb/doc/gdb.texinfo	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/doc/gdb.texinfo	2009-08-03 12:29:58.000000000 +0200
+@@ -991,6 +991,12 @@ Read each symbol file's entire symbol ta
  the default, which is to read it incrementally as it is needed.
  This makes startup slower, but makes future operations faster.
  
@@ -28,11 +28,11 @@ Index: gdb-6.8.50.20090302/gdb/doc/gdb.t
  @end table
  
  @node Mode Options
-Index: gdb-6.8.50.20090302/gdb/main.c
+Index: gdb-6.8.50.20090802/gdb/main.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/main.c	2009-05-09 20:00:03.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/main.c	2009-05-09 20:00:06.000000000 +0200
-@@ -427,6 +427,7 @@ captured_main (void *data)
+--- gdb-6.8.50.20090802.orig/gdb/main.c	2009-08-03 12:29:03.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/main.c	2009-08-03 12:29:58.000000000 +0200
+@@ -382,6 +382,7 @@ captured_main (void *data)
        {"xdb", no_argument, &xdb_commands, 1},
        {"dbx", no_argument, &dbx_commands, 1},
        {"readnow", no_argument, &readnow_symbol_files, 1},
@@ -40,7 +40,7 @@ Index: gdb-6.8.50.20090302/gdb/main.c
        {"r", no_argument, &readnow_symbol_files, 1},
        {"quiet", no_argument, &quiet, 1},
        {"q", no_argument, &quiet, 1},
-@@ -1070,6 +1071,7 @@ Options:\n\n\
+@@ -1030,6 +1031,7 @@ Options:\n\n\
    fputs_unfiltered (_("\
    --quiet            Do not print version number on startup.\n\
    --readnow          Fully read symbol files on first access.\n\
@@ -48,11 +48,11 @@ Index: gdb-6.8.50.20090302/gdb/main.c
  "), stream);
    fputs_unfiltered (_("\
    --se=FILE          Use FILE as symbol file and executable file.\n\
-Index: gdb-6.8.50.20090302/gdb/symfile.c
+Index: gdb-6.8.50.20090802/gdb/symfile.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile.c	2009-05-09 20:00:03.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/symfile.c	2009-05-09 20:00:06.000000000 +0200
-@@ -77,6 +77,7 @@ static void clear_symtab_users_cleanup (
+--- gdb-6.8.50.20090802.orig/gdb/symfile.c	2009-08-03 12:28:14.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/symfile.c	2009-08-03 12:29:58.000000000 +0200
+@@ -78,6 +78,7 @@ static void clear_symtab_users_cleanup (
  
  /* Global variables owned by this file */
  int readnow_symbol_files;	/* Read full symbols immediately */
@@ -60,32 +60,32 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
  /* External variables and functions referenced. */
  
-Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
+Index: gdb-6.8.50.20090802/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c	2009-05-09 20:00:02.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/dwarf2read.c	2009-05-09 20:00:19.000000000 +0200
-@@ -50,6 +50,7 @@
- #include "c-lang.h"
+--- gdb-6.8.50.20090802.orig/gdb/dwarf2read.c	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/dwarf2read.c	2009-08-03 12:31:01.000000000 +0200
+@@ -52,6 +52,7 @@
+ #include "jv-lang.h"
  #include "typeprint.h"
- #include "block.h"
+ #include "vec.h"
 +#include "top.h"
  
  #include <fcntl.h>
  #include "gdb_string.h"
-@@ -1187,7 +1188,8 @@ dwarf2_has_info (struct objfile *objfile
-   dwarf_aranges_section = 0;
-   
-   bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections, &update_sizes);
--  return (dwarf_info_section != NULL && dwarf_abbrev_section != NULL);
+@@ -1225,7 +1226,8 @@ dwarf2_has_info (struct objfile *objfile
+ 
+       bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections, NULL);
+     }
+-  return (dwarf2_per_objfile->info.asection != NULL
 +  return !readnever_symbol_files
-+	 && dwarf_info_section != NULL && dwarf_abbrev_section != NULL;
++      && (dwarf2_per_objfile->info.asection != NULL
+ 	  && dwarf2_per_objfile->abbrev.asection != NULL);
  }
  
- /* When loading sections, we can either look for ".<name>", or for
-Index: gdb-6.8.50.20090302/gdb/top.h
+Index: gdb-6.8.50.20090802/gdb/top.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/top.h	2009-01-03 06:57:53.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/top.h	2009-05-09 20:00:06.000000000 +0200
+--- gdb-6.8.50.20090802.orig/gdb/top.h	2009-01-03 06:57:53.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/top.h	2009-08-03 12:29:58.000000000 +0200
 @@ -59,6 +59,7 @@ extern void set_prompt (char *);
  
  /* From random places.  */

gdb-6.3-test-pie-20050107.patch:
 configure            |    3 
 configure.ac         |    2 
 gdb.pie/Makefile.in  |   19 
 gdb.pie/attach.c     |   20 +
 gdb.pie/attach.exp   |  432 ++++++++++++++++++++++
 gdb.pie/attach2.c    |   24 +
 gdb.pie/break.c      |  146 +++++++
 gdb.pie/break.exp    |  977 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gdb.pie/break1.c     |   44 ++
 gdb.pie/corefile.exp |  243 ++++++++++++
 gdb.pie/coremaker.c  |  142 +++++++
 11 files changed, 2050 insertions(+), 2 deletions(-)

Index: gdb-6.3-test-pie-20050107.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-test-pie-20050107.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- gdb-6.3-test-pie-20050107.patch	15 Jun 2009 12:53:17 -0000	1.9
+++ gdb-6.3-test-pie-20050107.patch	4 Aug 2009 05:37:28 -0000	1.10
@@ -1,40 +1,40 @@
-Index: gdb-6.8.50.20081128/gdb/testsuite/configure.ac
+Index: gdb-6.8.50.20090802/gdb/testsuite/configure.ac
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/testsuite/configure.ac	2008-12-09 17:02:39.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/testsuite/configure.ac	2008-12-09 17:02:55.000000000 +0100
-@@ -116,6 +116,6 @@ AC_OUTPUT([Makefile \
+--- gdb-6.8.50.20090802.orig/gdb/testsuite/configure.ac	2009-07-31 17:38:16.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/testsuite/configure.ac	2009-08-03 11:10:45.000000000 +0200
+@@ -144,6 +144,6 @@ AC_OUTPUT([Makefile \
    gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile \
    gdb.fortran/Makefile gdb.server/Makefile \
    gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile \
 -  gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile \
 +  gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \
-   gdb.python/Makefile \
+   gdb.python/Makefile gdb.reverse/Makefile \
    gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
-Index: gdb-6.8.50.20081128/gdb/testsuite/configure
+Index: gdb-6.8.50.20090802/gdb/testsuite/configure
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/testsuite/configure	2008-12-09 17:02:39.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/testsuite/configure	2008-12-09 17:02:55.000000000 +0100
-@@ -3131,7 +3131,7 @@ done
+--- gdb-6.8.50.20090802.orig/gdb/testsuite/configure	2009-07-31 17:38:16.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/testsuite/configure	2009-08-03 11:11:27.000000000 +0200
+@@ -3239,7 +3239,7 @@ done
  
  
  
--                                                                                                                                                                                                        ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
-+                                                                                                                                                                                                        ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+-                                                                                                                                                                                                                  ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
++                                                                                                                                                                                                                  ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
  cat >confcache <<\_ACEOF
  # This file is a shell script that caches the results of configure
  # tests run on this system so they can be shared between configure
-@@ -3698,6 +3698,7 @@ do
+@@ -3813,6 +3813,7 @@ do
    "gdb.objc/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.objc/Makefile" ;;
    "gdb.opt/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
    "gdb.pascal/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
 +  "gdb.pie/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.pie/Makefile" ;;
    "gdb.python/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
+   "gdb.reverse/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
    "gdb.threads/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.threads/Makefile" ;;
-   "gdb.trace/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.trace/Makefile" ;;
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/attach.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/attach.c	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.c	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,20 @@
 +/* This program is intended to be started outside of gdb, and then
 +   attached to by gdb.  Thus, it simply spins in a loop.  The loop
@@ -56,10 +56,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +    }
 +  return 0;
 +}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/attach2.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach2.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/attach2.c	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach2.c	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,24 @@
 +/* This program is intended to be started outside of gdb, and then
 +   attached to by gdb.  Thus, it simply spins in a loop.  The loop
@@ -85,10 +85,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +    }
 +  return (0);
 +}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/break.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/break.c	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.c	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,146 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -236,10 +236,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +    }
 +  return 0;
 +}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/break1.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break1.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/break1.c	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break1.c	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,44 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -285,10 +285,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +void marker3 (a, b) char *a, *b; {}	/* set breakpoint 18 here */
 +void marker4 (d) long d; {}		/* set breakpoint 13 here */
 +#endif
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/coremaker.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/coremaker.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/coremaker.c	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/coremaker.c	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,142 @@
 +/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
 +   Free Software Foundation, Inc.
@@ -432,10 +432,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +  return 0;
 +}
 +
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/attach.exp
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/attach.exp	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.exp	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,432 @@
 +#   Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
 +
@@ -869,10 +869,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +do_call_attach_tests
 +
 +return 0
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/break.exp
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/break.exp	2008-12-09 17:24:34.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.exp	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,977 @@
 +#   Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
 +#   2000, 2002, 2003, 2004
@@ -1851,10 +1851,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +    send_gdb "set args main\n"
 +    gdb_expect -re ".*$gdb_prompt $" {}
 +}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/corefile.exp
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/corefile.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/corefile.exp	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/corefile.exp	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,243 @@
 +# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
 +# Free Software Foundation, Inc.
@@ -2099,10 +2099,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(\\).*" "up in corefile.exp (reinit)"
 +
 +gdb_test "core" "No core file now."
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/Makefile.in
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/Makefile.in
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.pie/Makefile.in	2008-12-09 17:02:55.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/Makefile.in	2009-08-03 11:10:12.000000000 +0200
 @@ -0,0 +1,19 @@
 +VPATH = @srcdir@
 +srcdir = @srcdir@

gdb-6.3-threaded-watchpoints2-20050225.patch:
 watchthreads-threaded.c   |   66 ++++++++++++++++++++++
 watchthreads-threaded.exp |  133 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 199 insertions(+)

Index: gdb-6.3-threaded-watchpoints2-20050225.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-threaded-watchpoints2-20050225.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -p -r1.8 -r1.9
--- gdb-6.3-threaded-watchpoints2-20050225.patch	28 Aug 2008 18:48:34 -0000	1.8
+++ gdb-6.3-threaded-watchpoints2-20050225.patch	4 Aug 2009 05:37:28 -0000	1.9
@@ -42,7 +42,7 @@ FIXME: The testcase does not expects mul
 Index: gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.c	2006-07-12 01:54:29.000000000 -0300
++++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads-threaded.c	2006-07-12 01:54:29.000000000 -0300
 @@ -0,0 +1,66 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -113,7 +113,7 @@ Index: gdb-6.5/gdb/testsuite/gdb.threads
 Index: gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.exp	2006-07-12 01:54:29.000000000 -0300
++++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads-threaded.exp	2006-07-12 01:54:29.000000000 -0300
 @@ -0,0 +1,133 @@
 +# This testcase is part of GDB, the GNU debugger.
 +

gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch:
 gdbtypes.c                         |    3 +
 gdbtypes.h                         |    2 +
 parse.c                            |    6 ++-
 target.c                           |   42 ++++++++++++++++++++++-
 testsuite/gdb.dwarf2/dw2-errno.c   |   28 +++++++++++++++
 testsuite/gdb.dwarf2/dw2-errno.exp |   67 +++++++++++++++++++++++++++++++++++++
 6 files changed, 146 insertions(+), 2 deletions(-)

Index: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -p -r1.10 -r1.11
--- gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch	2 Mar 2009 23:14:15 -0000	1.10
+++ gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch	4 Aug 2009 05:37:28 -0000	1.11
@@ -30,75 +30,55 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/d
   <81a2>     DW_AT_name        : (indirect string, offset: 0x280e): __errno_location
   <81a8>     DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
 
-Index: gdb-6.8.50.20090228/gdb/gdbtypes.c
+Index: gdb-6.8.50.20090802/gdb/gdbtypes.c
 ===================================================================
---- gdb-6.8.50.20090228.orig/gdb/gdbtypes.c	2009-03-02 01:01:15.000000000 +0100
-+++ gdb-6.8.50.20090228/gdb/gdbtypes.c	2009-03-02 01:01:53.000000000 +0100
-@@ -3633,6 +3633,8 @@ gdbtypes_post_init (struct gdbarch *gdba
-     init_type (TYPE_CODE_INT, 
- 	       gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
- 	       0, "int", OBJFILE_INTERNAL);
-+  builtin_type->builtin_int_ptr =
-+    make_pointer_type (builtin_type->builtin_int, NULL);
-   builtin_type->builtin_unsigned_int =
-     init_type (TYPE_CODE_INT, 
- 	       gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
-@@ -3742,6 +3744,12 @@ gdbtypes_post_init (struct gdbarch *gdba
- 	       "<text variable, no debug info>", OBJFILE_INTERNAL);
-   TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol) =
-     builtin_type->builtin_int;
-+  builtin_type->nodebug_text_symbol_errno_location =
-+    init_type (TYPE_CODE_FUNC, 1, 0, 
-+	       "<text variable for __errno_location, no debug info>",
-+	       OBJFILE_INTERNAL);
-+  TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol_errno_location) =
-+    builtin_type->builtin_int_ptr;
-   builtin_type->nodebug_data_symbol =
-     init_type (TYPE_CODE_INT, 
- 	       gdbarch_int_bit (gdbarch) / HOST_CHAR_BIT, 0,
-Index: gdb-6.8.50.20090228/gdb/gdbtypes.h
-===================================================================
---- gdb-6.8.50.20090228.orig/gdb/gdbtypes.h	2009-03-02 01:01:15.000000000 +0100
-+++ gdb-6.8.50.20090228/gdb/gdbtypes.h	2009-03-02 01:01:53.000000000 +0100
-@@ -1053,6 +1053,7 @@ struct builtin_type
+--- gdb-6.8.50.20090802.orig/gdb/gdbtypes.c	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/gdbtypes.c	2009-08-03 15:42:51.000000000 +0200
+@@ -3769,6 +3769,9 @@ gdbtypes_post_init (struct gdbarch *gdba
+     = arch_type (gdbarch, TYPE_CODE_INTERNAL_FUNCTION, 0,
+ 		 "<internal function>");
  
-   /* Types used for symbols with no debug information.  */
-   struct type *nodebug_text_symbol;
++  builtin_type->nodebug_text_symbol_errno_location
++    = lookup_function_type (lookup_pointer_type (builtin_type->builtin_int));
++
+   return builtin_type;
+ }
+ 
+Index: gdb-6.8.50.20090802/gdb/gdbtypes.h
+===================================================================
+--- gdb-6.8.50.20090802.orig/gdb/gdbtypes.h	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/gdbtypes.h	2009-08-03 15:40:02.000000000 +0200
+@@ -1128,6 +1128,8 @@ struct builtin_type
+ 
+   /* This type is used to represent a GDB internal function.  */
+   struct type *internal_fn;
++
 +  struct type *nodebug_text_symbol_errno_location;
-   struct type *nodebug_data_symbol;
-   struct type *nodebug_unknown_symbol;
-   struct type *nodebug_tls_symbol;
-@@ -1065,6 +1066,7 @@ struct builtin_type
-   struct type *builtin_char;
-   struct type *builtin_short;
-   struct type *builtin_int;
-+  struct type *builtin_int_ptr;
-   struct type *builtin_long;
-   struct type *builtin_signed_char;
-   struct type *builtin_unsigned_char;
-Index: gdb-6.8.50.20090228/gdb/parse.c
-===================================================================
---- gdb-6.8.50.20090228.orig/gdb/parse.c	2009-03-02 01:01:15.000000000 +0100
-+++ gdb-6.8.50.20090228/gdb/parse.c	2009-03-02 01:01:53.000000000 +0100
-@@ -508,7 +508,12 @@ write_exp_msymbol (struct minimal_symbol
+ };
+ 
+ /* Return the type table for the specified architecture.  */
+Index: gdb-6.8.50.20090802/gdb/parse.c
+===================================================================
+--- gdb-6.8.50.20090802.orig/gdb/parse.c	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/parse.c	2009-08-03 15:41:54.000000000 +0200
+@@ -510,7 +510,11 @@ write_exp_msymbol (struct minimal_symbol
      case mst_text:
      case mst_file_text:
      case mst_solib_trampoline:
--      write_exp_elt_type (builtin_type (gdbarch)->nodebug_text_symbol);
+-      write_exp_elt_type (objfile_type (objfile)->nodebug_text_symbol);
 +      if (builtin_type (gdbarch)->nodebug_text_symbol_errno_location != NULL
 +          && strcmp (SYMBOL_LINKAGE_NAME (msymbol), "__errno_location") == 0)
-+	write_exp_elt_type (builtin_type (gdbarch)
-+					  ->nodebug_text_symbol_errno_location);
++	write_exp_elt_type (builtin_type (gdbarch)->nodebug_text_symbol_errno_location);
 +      else
-+	write_exp_elt_type (builtin_type (gdbarch)->nodebug_text_symbol);
++	write_exp_elt_type (objfile_type (objfile)->nodebug_text_symbol);
        break;
  
      case mst_data:
-Index: gdb-6.8.50.20090228/gdb/target.c
+Index: gdb-6.8.50.20090802/gdb/target.c
 ===================================================================
---- gdb-6.8.50.20090228.orig/gdb/target.c	2009-03-02 01:01:44.000000000 +0100
-+++ gdb-6.8.50.20090228/gdb/target.c	2009-03-02 01:01:53.000000000 +0100
-@@ -827,6 +827,25 @@ pop_all_targets (int quitting)
+--- gdb-6.8.50.20090802.orig/gdb/target.c	2009-08-03 12:38:47.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/target.c	2009-08-03 12:49:33.000000000 +0200
+@@ -933,6 +933,25 @@ pop_all_targets (int quitting)
    pop_all_targets_above (dummy_stratum, quitting);
  }
  
@@ -124,7 +104,7 @@ Index: gdb-6.8.50.20090228/gdb/target.c
  /* Using the objfile specified in OBJFILE, find the address for the
     current thread's thread-local storage with offset OFFSET.  */
  CORE_ADDR
-@@ -917,7 +936,28 @@ target_translate_tls_address (struct obj
+@@ -1023,7 +1042,28 @@ target_translate_tls_address (struct obj
    /* It wouldn't be wrong here to try a gdbarch method, too; finding
       TLS is an ABI-specific thing.  But we don't do that yet.  */
    else
@@ -154,10 +134,10 @@ Index: gdb-6.8.50.20090228/gdb/target.c
  
    return addr;
  }
-Index: gdb-6.8.50.20090228/gdb/testsuite/gdb.dwarf2/dw2-errno.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.dwarf2/dw2-errno.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090228/gdb/testsuite/gdb.dwarf2/dw2-errno.c	2009-03-02 01:01:53.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.dwarf2/dw2-errno.c	2009-08-03 12:49:33.000000000 +0200
 @@ -0,0 +1,28 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -187,10 +167,10 @@ Index: gdb-6.8.50.20090228/gdb/testsuite
 +
 +  return 0;	/* breakpoint */
 +}
-Index: gdb-6.8.50.20090228/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090228/gdb/testsuite/gdb.dwarf2/dw2-errno.exp	2009-03-02 01:01:53.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.dwarf2/dw2-errno.exp	2009-08-03 12:49:33.000000000 +0200
 @@ -0,0 +1,67 @@
 +# Copyright 2007 Free Software Foundation, Inc.
 +

gdb-6.5-bz203661-emit-relocs.patch:
 symfile.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: gdb-6.5-bz203661-emit-relocs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz203661-emit-relocs.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- gdb-6.5-bz203661-emit-relocs.patch	24 Aug 2006 06:18:06 -0000	1.2
+++ gdb-6.5-bz203661-emit-relocs.patch	4 Aug 2009 05:37:28 -0000	1.3
@@ -1,8 +1,8 @@
-Index: gdb-6.5/gdb/symfile.c
+Index: gdb-6.8.50.20090802/gdb/symfile.c
 ===================================================================
---- gdb-6.5.orig/gdb/symfile.c	2006-08-24 02:56:02.000000000 -0300
-+++ gdb-6.5/gdb/symfile.c	2006-08-24 02:56:36.000000000 -0300
-@@ -3739,6 +3739,12 @@ symfile_dummy_outputs (bfd *abfd, asecti
+--- gdb-6.8.50.20090802.orig/gdb/symfile.c	2009-08-03 12:29:58.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/symfile.c	2009-08-03 12:40:58.000000000 +0200
+@@ -4012,6 +4012,12 @@ symfile_dummy_outputs (bfd *abfd, asecti
  bfd_byte *
  symfile_relocate_debug_section (bfd *abfd, asection *sectp, bfd_byte *buf)
  {
@@ -12,6 +12,6 @@ Index: gdb-6.5/gdb/symfile.c
 +  if ((abfd->flags & EXEC_P) != 0)
 +    return NULL;
 +
-   /* We're only interested in debugging sections with relocation
+   /* We're only interested in sections with relocation
       information.  */
    if ((sectp->flags & SEC_RELOC) == 0)

gdb-6.5-bz216711-clone-is-outermost.patch:
 amd64-linux-tdep.c                      |   76 ++++++++++++++++++++++++++++++++
 amd64-tdep.c                            |    5 ++
 i386-tdep.c                             |    3 +
 i386-tdep.h                             |    3 +
 testsuite/gdb.threads/bt-clone-stop.c   |   39 ++++++++++++++++
 testsuite/gdb.threads/bt-clone-stop.exp |   61 +++++++++++++++++++++++++
 6 files changed, 187 insertions(+)

Index: gdb-6.5-bz216711-clone-is-outermost.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz216711-clone-is-outermost.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- gdb-6.5-bz216711-clone-is-outermost.patch	14 Dec 2008 14:05:16 -0000	1.3
+++ gdb-6.5-bz216711-clone-is-outermost.patch	4 Aug 2009 05:37:28 -0000	1.4
@@ -23,11 +23,11 @@ instead.
 
 	Port to GDB-6.7.
 
-Index: gdb-6.8.50.20081128/gdb/amd64-linux-tdep.c
+Index: gdb-6.8.50.20090802/gdb/amd64-linux-tdep.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/amd64-linux-tdep.c	2008-12-08 10:56:17.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/amd64-linux-tdep.c	2008-12-08 21:11:08.000000000 +0100
-@@ -234,6 +234,80 @@ amd64_linux_register_reggroup_p (struct 
+--- gdb-6.8.50.20090802.orig/gdb/amd64-linux-tdep.c	2009-07-02 19:25:52.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/amd64-linux-tdep.c	2009-08-03 15:50:08.000000000 +0200
+@@ -238,6 +238,80 @@ amd64_linux_register_reggroup_p (struct 
  
  /* Set the program counter for process PTID to PC.  */
  
@@ -108,7 +108,7 @@ Index: gdb-6.8.50.20081128/gdb/amd64-lin
  static void
  amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
  {
-@@ -272,6 +346,8 @@ amd64_linux_init_abi (struct gdbarch_inf
+@@ -276,6 +350,8 @@ amd64_linux_init_abi (struct gdbarch_inf
    tdep->sc_reg_offset = amd64_linux_sc_reg_offset;
    tdep->sc_num_regs = ARRAY_SIZE (amd64_linux_sc_reg_offset);
  
@@ -117,11 +117,11 @@ Index: gdb-6.8.50.20081128/gdb/amd64-lin
    /* GNU/Linux uses SVR4-style shared libraries.  */
    set_solib_svr4_fetch_link_map_offsets
      (gdbarch, svr4_lp64_fetch_link_map_offsets);
-Index: gdb-6.8.50.20081128/gdb/amd64-tdep.c
+Index: gdb-6.8.50.20090802/gdb/amd64-tdep.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/amd64-tdep.c	2008-12-08 10:56:17.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/amd64-tdep.c	2008-12-08 21:05:12.000000000 +0100
-@@ -1044,11 +1044,16 @@ amd64_frame_this_id (struct frame_info *
+--- gdb-6.8.50.20090802.orig/gdb/amd64-tdep.c	2009-07-02 19:25:52.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/amd64-tdep.c	2009-08-03 15:50:08.000000000 +0200
+@@ -1736,11 +1736,16 @@ amd64_frame_this_id (struct frame_info *
  {
    struct amd64_frame_cache *cache =
      amd64_frame_cache (this_frame, this_cache);
@@ -138,11 +138,11 @@ Index: gdb-6.8.50.20081128/gdb/amd64-tde
    (*this_id) = frame_id_build (cache->base + 16, cache->pc);
  }
  
-Index: gdb-6.8.50.20081128/gdb/i386-tdep.c
+Index: gdb-6.8.50.20090802/gdb/i386-tdep.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/i386-tdep.c	2008-12-08 10:56:17.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/i386-tdep.c	2008-12-08 11:00:43.000000000 +0100
-@@ -2698,6 +2698,9 @@ i386_gdbarch_init (struct gdbarch_info i
+--- gdb-6.8.50.20090802.orig/gdb/i386-tdep.c	2009-07-12 19:46:21.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/i386-tdep.c	2009-08-03 15:50:08.000000000 +0200
+@@ -5307,6 +5307,9 @@ i386_gdbarch_init (struct gdbarch_info i
    tdep->sc_pc_offset = -1;
    tdep->sc_sp_offset = -1;
  
@@ -152,24 +152,24 @@ Index: gdb-6.8.50.20081128/gdb/i386-tdep
    /* The format used for `long double' on almost all i386 targets is
       the i387 extended floating-point format.  In fact, of all targets
       in the GCC 2.95 tree, only OSF/1 does it different, and insists
-Index: gdb-6.8.50.20081128/gdb/i386-tdep.h
+Index: gdb-6.8.50.20090802/gdb/i386-tdep.h
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/i386-tdep.h	2008-12-08 10:56:17.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/i386-tdep.h	2008-12-08 21:07:47.000000000 +0100
-@@ -106,6 +106,9 @@ struct gdbarch_tdep
-   /* ISA-specific data types.  */
-   struct type *i386_mmx_type;
-   struct type *i386_sse_type;
+--- gdb-6.8.50.20090802.orig/gdb/i386-tdep.h	2009-07-02 19:25:54.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/i386-tdep.h	2009-08-03 15:50:29.000000000 +0200
+@@ -115,6 +115,9 @@ struct gdbarch_tdep
+   int (*i386_intx80_record) (struct regcache *regcache);
+   /* Parse sysenter args.  */
+   int (*i386_sysenter_record) (struct regcache *regcache);
 +
 +  /* Detect OS dependent outermost frames; such as `clone'.  */
 +  int (*outermost_frame_p) (struct frame_info *this_frame);
  };
  
  /* Floating-point registers.  */
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/bt-clone-stop.c
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.threads/bt-clone-stop.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/bt-clone-stop.c	2008-12-08 11:00:43.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.threads/bt-clone-stop.c	2009-08-03 15:50:08.000000000 +0200
 @@ -0,0 +1,39 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -210,10 +210,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +	for (;;)
 +		pause();
 +}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/bt-clone-stop.exp
+Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.threads/bt-clone-stop.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/bt-clone-stop.exp	2008-12-08 11:00:43.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/testsuite/gdb.threads/bt-clone-stop.exp	2009-08-03 15:50:08.000000000 +0200
 @@ -0,0 +1,61 @@
 +# Copyright 2006 Free Software Foundation, Inc.
 +

gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch:
 symtab.c |    7 +++++++
 1 file changed, 7 insertions(+)

Index: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch	14 Jul 2008 09:09:04 -0000	1.2
+++ gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch	4 Aug 2009 05:37:28 -0000	1.3
@@ -1,11 +1,11 @@
 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
 
 
-Index: gdb-6.8/gdb/symtab.c
+Index: gdb-6.8.50.20090803/gdb/symtab.c
 ===================================================================
---- gdb-6.8.orig/gdb/symtab.c	2008-02-05 23:17:40.000000000 +0100
-+++ gdb-6.8/gdb/symtab.c	2008-07-14 10:27:32.000000000 +0200
-@@ -2132,6 +2132,13 @@ find_pc_sect_line (CORE_ADDR pc, struct 
+--- gdb-6.8.50.20090803.orig/gdb/symtab.c	2009-08-03 16:09:36.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symtab.c	2009-08-03 16:13:13.000000000 +0200
+@@ -2261,6 +2261,13 @@ find_pc_sect_line (CORE_ADDR pc, struct 
  	  /* See above comment about why warning is commented out */
  	  /* warning ("In stub for %s; unable to find real function/line info", SYMBOL_LINKAGE_NAME (msymbol)) */ ;
  	/* fall through */
@@ -14,7 +14,7 @@ Index: gdb-6.8/gdb/symtab.c
 +	   Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
 +	   Red Hat Bug 218379.  */
 +	else if (SYMBOL_VALUE (mfunsym) == pc)
-+	  warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddr (pc));
++	  warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddress (target_gdbarch, pc));
 +	/* fall through */
  	else
  	  return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0);

gdb-6.5-gcore-i386-on-amd64.patch:
 amd64-linux-nat.c |  127 ++++++++++++++++++++++++++
 config.in         |    9 +
 configure         |  262 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac      |    5 +
 gcore.c           |    5 +
 gdb_procfs32.h    |  128 ++++++++++++++++++++++++++
 gdb_user32.h      |  108 ++++++++++++++++++++++
 linux-nat.c       |   27 ++++-
 linux-nat.h       |    9 +
 9 files changed, 674 insertions(+), 6 deletions(-)

Index: gdb-6.5-gcore-i386-on-amd64.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-gcore-i386-on-amd64.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- gdb-6.5-gcore-i386-on-amd64.patch	14 Dec 2008 20:44:09 -0000	1.6
+++ gdb-6.5-gcore-i386-on-amd64.patch	4 Aug 2009 05:37:28 -0000	1.7
@@ -23,21 +23,21 @@
 
 	Port to GDB-6.8pre.
 
-Index: gdb-6.8.50.20081214/gdb/amd64-linux-nat.c
+Index: gdb-6.8.50.20090802/gdb/amd64-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/amd64-linux-nat.c	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/amd64-linux-nat.c	2008-12-14 21:24:19.000000000 +0100
-@@ -50,6 +50,9 @@
- #include "amd64-tdep.h"
+--- gdb-6.8.50.20090802.orig/gdb/amd64-linux-nat.c	2009-06-17 20:44:23.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/amd64-linux-nat.c	2009-08-03 15:49:33.000000000 +0200
+@@ -51,6 +51,9 @@
  #include "i386-linux-tdep.h"
  #include "amd64-nat.h"
+ #include "i386-nat.h"
 +#include "i387-tdep.h"
 +#include "elf-bfd.h"
 +#include "gdb_procfs32.h"
  
  /* Mapping between the general-purpose registers in GNU/Linux x86-64
     `struct user' format and GDB's register cache layout.  */
-@@ -84,6 +87,35 @@ static int amd64_linux_gregset64_reg_off
+@@ -85,6 +88,35 @@ static int amd64_linux_gregset64_reg_off
     GNU/Linux i386 registers are all 32-bit, but since we're
     little-endian we get away with that.  */
  
@@ -73,7 +73,7 @@ Index: gdb-6.8.50.20081214/gdb/amd64-lin
  /* From <sys/reg.h> on GNU/Linux i386.  */
  static int amd64_linux_gregset32_reg_offset[] =
  {
-@@ -102,6 +134,96 @@ static int amd64_linux_gregset32_reg_off
+@@ -103,6 +135,96 @@ static int amd64_linux_gregset32_reg_off
  };
  
  
@@ -84,7 +84,7 @@ Index: gdb-6.8.50.20081214/gdb/amd64-lin
 +amd64_linux_elfcore_write_prpsinfo (bfd *abfd, char *buf, int *bufsiz,
 +				    const char *fname, const char *psargs)
 +{
-+  if (gdbarch_ptr_bit(current_gdbarch) == 32)
++  if (gdbarch_ptr_bit (target_gdbarch) == 32)
 +    {
 +      int note_type;
 +      char *note_name = "CORE";
@@ -118,7 +118,7 @@ Index: gdb-6.8.50.20081214/gdb/amd64-lin
 +amd64_linux_elfcore_write_prstatus (bfd *abfd, char *buf, int *bufsiz,
 +			      long pid, int cursig, const void *gregs)
 +{
-+  if (gdbarch_ptr_bit(current_gdbarch) == 32)
++  if (gdbarch_ptr_bit (target_gdbarch) == 32)
 +    {
 +      char *note_name = "CORE";
 +      struct elf_prstatus32 prstat;
@@ -151,7 +151,7 @@ Index: gdb-6.8.50.20081214/gdb/amd64-lin
 +				   int *bufsiz, const void *fpregs, int size,
 +				   struct regcache *regcache)
 +{
-+  if (gdbarch_ptr_bit(current_gdbarch) == 32)
++  if (gdbarch_ptr_bit (target_gdbarch) == 32)
 +    {
 +      char *note_name = "CORE";
 +      elf_fpregset32_t fpregs32;
@@ -170,7 +170,7 @@ Index: gdb-6.8.50.20081214/gdb/amd64-lin
  /* Transfering the general-purpose registers between GDB, inferiors
     and core files.  */
  
-@@ -431,6 +553,11 @@ _initialize_amd64_linux_nat (void)
+@@ -682,6 +804,11 @@ _initialize_amd64_linux_nat (void)
    t->to_fetch_registers = amd64_linux_fetch_inferior_registers;
    t->to_store_registers = amd64_linux_store_inferior_registers;
  
@@ -182,11 +182,11 @@ Index: gdb-6.8.50.20081214/gdb/amd64-lin
    /* Register the target.  */
    linux_nat_add_target (t);
    linux_nat_set_new_thread (t, amd64_linux_new_thread);
-Index: gdb-6.8.50.20081214/gdb/config.in
+Index: gdb-6.8.50.20090802/gdb/config.in
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/config.in	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/config.in	2008-12-14 21:34:50.000000000 +0100
-@@ -136,6 +136,9 @@
+--- gdb-6.8.50.20090802.orig/gdb/config.in	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/config.in	2009-08-03 15:48:31.000000000 +0200
+@@ -146,6 +146,9 @@
  /* Define to 1 if you have the <elf_hp.h> header file. */
  #undef HAVE_ELF_HP_H
  
@@ -196,7 +196,7 @@ Index: gdb-6.8.50.20081214/gdb/config.in
  /* Define to 1 if your system has the etext variable. */
  #undef HAVE_ETEXT
  
-@@ -465,6 +468,9 @@
+@@ -487,6 +490,9 @@
  /* Define to 1 if you have the <sys/poll.h> header file. */
  #undef HAVE_SYS_POLL_H
  
@@ -206,7 +206,7 @@ Index: gdb-6.8.50.20081214/gdb/config.in
  /* Define to 1 if you have the <sys/procfs.h> header file. */
  #undef HAVE_SYS_PROCFS_H
  
-@@ -492,6 +498,9 @@
+@@ -514,6 +520,9 @@
  /* Define to 1 if you have the <sys/types.h> header file. */
  #undef HAVE_SYS_TYPES_H
  
@@ -216,11 +216,11 @@ Index: gdb-6.8.50.20081214/gdb/config.in
  /* Define to 1 if you have the <sys/user.h> header file. */
  #undef HAVE_SYS_USER_H
  
-Index: gdb-6.8.50.20081214/gdb/configure
+Index: gdb-6.8.50.20090802/gdb/configure
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/configure	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/configure	2008-12-14 21:33:30.000000000 +0100
-@@ -12026,6 +12026,268 @@ _ACEOF
+--- gdb-6.8.50.20090802.orig/gdb/configure	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/configure	2009-08-03 15:48:31.000000000 +0200
+@@ -12545,6 +12545,268 @@ _ACEOF
  
  fi
  
@@ -489,11 +489,11 @@ Index: gdb-6.8.50.20081214/gdb/configure
  # elf_hp.h is for HP/UX 64-bit shared library support.
  # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
  # unconditionally, so what's the point in checking these?
-Index: gdb-6.8.50.20081214/gdb/configure.ac
+Index: gdb-6.8.50.20090802/gdb/configure.ac
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/configure.ac	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/configure.ac	2008-12-14 21:32:35.000000000 +0100
-@@ -686,6 +686,11 @@ AC_SUBST(PYTHON_CFLAGS)
+--- gdb-6.8.50.20090802.orig/gdb/configure.ac	2009-08-03 09:50:57.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/configure.ac	2009-08-03 15:48:31.000000000 +0200
+@@ -744,6 +744,11 @@ AC_SUBST(PYTHON_CFLAGS)
  AC_HEADER_DIRENT
  AC_HEADER_STAT
  AC_HEADER_STDC
@@ -505,11 +505,11 @@ Index: gdb-6.8.50.20081214/gdb/configure
  # elf_hp.h is for HP/UX 64-bit shared library support.
  # FIXME: kettenis/20030102: In most cases we include these (ctype.h, time.h)
  # unconditionally, so what's the point in checking these?
-Index: gdb-6.8.50.20081214/gdb/gcore.c
+Index: gdb-6.8.50.20090802/gdb/gcore.c
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/gcore.c	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/gcore.c	2008-12-14 21:17:10.000000000 +0100
-@@ -320,6 +320,11 @@ gcore_create_callback (CORE_ADDR vaddr, 
+--- gdb-6.8.50.20090802.orig/gdb/gcore.c	2009-08-03 12:28:56.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/gcore.c	2009-08-03 15:48:31.000000000 +0200
+@@ -324,6 +324,11 @@ gcore_create_callback (CORE_ADDR vaddr, 
    asection *osec;
    flagword flags = SEC_ALLOC | SEC_HAS_CONTENTS | SEC_LOAD;
  
@@ -521,10 +521,10 @@ Index: gdb-6.8.50.20081214/gdb/gcore.c
    /* If the memory segment has no permissions set, ignore it, otherwise
       when we later try to access it for read/write, we'll get an error
       or jam the kernel.  */
-Index: gdb-6.8.50.20081214/gdb/gdb_procfs32.h
+Index: gdb-6.8.50.20090802/gdb/gdb_procfs32.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081214/gdb/gdb_procfs32.h	2008-12-14 21:32:56.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/gdb_procfs32.h	2009-08-03 15:48:31.000000000 +0200
 @@ -0,0 +1,128 @@
 +#ifdef HAVE_SYS_PROCFS32_H
 +#include <sys/procfs32.h>
@@ -654,10 +654,10 @@ Index: gdb-6.8.50.20081214/gdb/gdb_procf
 +#endif	/* _SYS_PROCFS32_H */
 +
 +#endif /* HAVE_SYS_PROCFS32_H */
-Index: gdb-6.8.50.20081214/gdb/gdb_user32.h
+Index: gdb-6.8.50.20090802/gdb/gdb_user32.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081214/gdb/gdb_user32.h	2008-12-14 21:17:10.000000000 +0100
++++ gdb-6.8.50.20090802/gdb/gdb_user32.h	2009-08-03 15:48:31.000000000 +0200
 @@ -0,0 +1,108 @@
 +#ifdef HAVE_SYS_USER32_H
 +#include <sys/user32.h>
@@ -767,11 +767,11 @@ Index: gdb-6.8.50.20081214/gdb/gdb_user3
 +#endif	/* _SYS_USER32_H */
 +
 +#endif /* HAVE_SYS_USER32_H */
-Index: gdb-6.8.50.20081214/gdb/linux-nat.c
+Index: gdb-6.8.50.20090802/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/linux-nat.c	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/linux-nat.c	2008-12-14 21:24:20.000000000 +0100
-@@ -213,6 +213,21 @@ static LONGEST (*super_xfer_partial) (st
+--- gdb-6.8.50.20090802.orig/gdb/linux-nat.c	2009-08-03 12:31:26.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/linux-nat.c	2009-08-03 15:48:31.000000000 +0200
+@@ -219,6 +219,21 @@ static LONGEST (*super_xfer_partial) (st
  				      const gdb_byte *,
  				      ULONGEST, LONGEST);
  
@@ -793,7 +793,7 @@ Index: gdb-6.8.50.20081214/gdb/linux-nat
  static int debug_linux_nat;
  static void
  show_debug_linux_nat (struct ui_file *file, int from_tty,
-@@ -3473,7 +3488,7 @@ linux_nat_do_thread_registers (bfd *obfd
+@@ -3586,7 +3601,7 @@ linux_nat_do_thread_registers (bfd *obfd
    else
      fill_gregset (regcache, &gregs, -1);
  
@@ -802,7 +802,7 @@ Index: gdb-6.8.50.20081214/gdb/linux-nat
  					       note_data,
  					       note_size,
  					       lwp,
-@@ -3523,10 +3538,10 @@ linux_nat_do_thread_registers (bfd *obfd
+@@ -3636,10 +3651,10 @@ linux_nat_do_thread_registers (bfd *obfd
        else
  	fill_fpregset (regcache, &fpregs, -1);
  
@@ -815,7 +815,7 @@ Index: gdb-6.8.50.20081214/gdb/linux-nat
      }
  
    return note_data;
-@@ -3595,9 +3610,9 @@ linux_nat_make_corefile_notes (bfd *obfd
+@@ -3822,9 +3837,9 @@ linux_nat_make_corefile_notes (bfd *obfd
  		       psargs_end - string_end);
  	    }
  	}
@@ -828,11 +828,11 @@ Index: gdb-6.8.50.20081214/gdb/linux-nat
      }
  
    /* Dump information for threads.  */
-Index: gdb-6.8.50.20081214/gdb/linux-nat.h
+Index: gdb-6.8.50.20090802/gdb/linux-nat.h
 ===================================================================
---- gdb-6.8.50.20081214.orig/gdb/linux-nat.h	2008-12-14 21:17:01.000000000 +0100
-+++ gdb-6.8.50.20081214/gdb/linux-nat.h	2008-12-14 21:24:11.000000000 +0100
-@@ -134,3 +134,12 @@ void linux_nat_switch_fork (ptid_t new_p
+--- gdb-6.8.50.20090802.orig/gdb/linux-nat.h	2009-08-03 10:52:00.000000000 +0200
++++ gdb-6.8.50.20090802/gdb/linux-nat.h	2009-08-03 15:48:31.000000000 +0200
+@@ -144,3 +144,12 @@ void linux_nat_switch_fork (ptid_t new_p
  
  /* Return the saved siginfo associated with PTID.  */
  struct siginfo *linux_nat_get_siginfo (ptid_t ptid);

gdb-6.6-buildid-locate-rpm.patch:
 aclocal.m4                   |  156 +++++++++++
 config.in                    |    6 
 configure                    |  576 ++++++++++++++++++++++++++++++++++++++++++-
 configure.ac                 |  193 ++++++++++++++
 event-top.c                  |    5 
 symfile.c                    |  387 ++++++++++++++++++++++++++++
 symfile.h                    |    1 
 testsuite/lib/gdb.exp        |    2 
 testsuite/lib/mi-support.exp |    2 
 tui/tui-interp.c             |    3 
 10 files changed, 1320 insertions(+), 11 deletions(-)

Index: gdb-6.6-buildid-locate-rpm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-buildid-locate-rpm.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- gdb-6.6-buildid-locate-rpm.patch	12 Jun 2009 21:57:38 -0000	1.4
+++ gdb-6.6-buildid-locate-rpm.patch	4 Aug 2009 05:37:28 -0000	1.5
@@ -1,7 +1,7 @@
-Index: gdb-6.8.50.20090302/gdb/event-top.c
+Index: gdb-6.8.50.20090803/gdb/event-top.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/event-top.c	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/event-top.c	2009-03-07 17:25:06.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/event-top.c	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/event-top.c	2009-08-03 16:17:59.000000000 +0200
 @@ -33,6 +33,7 @@
  #include "cli/cli-script.h"     /* for reset_command_nest_depth */
  #include "main.h"
@@ -28,11 +28,11 @@ Index: gdb-6.8.50.20090302/gdb/event-top
    /* Each interpreter has its own rules on displaying the command
       prompt.  */
    if (!current_interp_display_prompt_p ())
-Index: gdb-6.8.50.20090302/gdb/symfile.c
+Index: gdb-6.8.50.20090803/gdb/symfile.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile.c	2009-03-07 17:22:21.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/symfile.c	2009-03-07 17:26:47.000000000 +0100
-@@ -55,6 +55,7 @@
+--- gdb-6.8.50.20090803.orig/gdb/symfile.c	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile.c	2009-08-03 16:17:59.000000000 +0200
+@@ -56,6 +56,7 @@
  #include "solib.h"
  #include "remote.h"
  #include "libbfd.h"
@@ -40,7 +40,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
  #include <sys/types.h>
  #include <fcntl.h>
-@@ -63,6 +64,7 @@
+@@ -64,6 +65,7 @@
  #include <ctype.h>
  #include <time.h>
  #include <sys/time.h>
@@ -48,7 +48,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
  
  int (*deprecated_ui_load_progress_hook) (const char *section, unsigned long num);
-@@ -1684,8 +1686,352 @@ build_id_to_filename (struct build_id *b
+@@ -1692,8 +1694,352 @@ build_id_to_filename (struct build_id *b
    return retval;
  }
  
@@ -402,7 +402,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
     avoidance.  */
  
  struct missing_filepair
-@@ -1739,11 +2085,17 @@ missing_filepair_change (void)
+@@ -1747,11 +2093,17 @@ missing_filepair_change (void)
        /* All their memory came just from missing_filepair_OBSTACK.  */
        missing_filepair_hash = NULL;
      }
@@ -420,7 +420,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
    missing_filepair_change ();
  }
  
-@@ -1802,14 +2154,33 @@ debug_print_missing (const char *binary,
+@@ -1818,14 +2170,33 @@ debug_print_missing (const char *binary,
  
    *slot = missing_filepair;
  
@@ -461,11 +461,11 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  }
  
  static char *
-Index: gdb-6.8.50.20090302/gdb/symfile.h
+Index: gdb-6.8.50.20090803/gdb/symfile.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile.h	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/symfile.h	2009-03-07 17:25:06.000000000 +0100
-@@ -378,6 +378,7 @@ extern struct build_id *build_id_addr_ge
+--- gdb-6.8.50.20090803.orig/gdb/symfile.h	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile.h	2009-08-03 16:17:59.000000000 +0200
+@@ -394,6 +394,7 @@ extern struct build_id *build_id_addr_ge
  extern char *build_id_to_filename (struct build_id *build_id,
  				   char **link_return, int add_debug_suffix);
  extern void debug_print_missing (const char *binary, const char *debug);
@@ -473,11 +473,11 @@ Index: gdb-6.8.50.20090302/gdb/symfile.h
  
  /* From dwarf2read.c */
  
-Index: gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/lib/gdb.exp
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/lib/gdb.exp	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp	2009-03-07 17:25:06.000000000 +0100
-@@ -1230,7 +1230,7 @@ proc default_gdb_start { } {
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/lib/gdb.exp	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/lib/gdb.exp	2009-08-03 16:17:59.000000000 +0200
+@@ -1248,7 +1248,7 @@ proc default_gdb_start { } {
  	    warning "Couldn't set the width to 0."
  	}
      }
@@ -486,8 +486,10 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
      send_gdb "set build-id-verbose 0\n"
      gdb_expect 10 {
  	-re "$gdb_prompt $" {
---- ./gdb/testsuite/lib/mi-support.exp	2009-03-22 16:37:58.000000000 +0100
-+++ ./gdb/testsuite/lib/mi-support.exp	2009-03-22 16:37:12.000000000 +0100
+Index: gdb-6.8.50.20090803/gdb/testsuite/lib/mi-support.exp
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/lib/mi-support.exp	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/lib/mi-support.exp	2009-08-03 16:17:59.000000000 +0200
 @@ -221,7 +221,7 @@ proc default_mi_gdb_start { args } {
  	    }
      	}
@@ -497,10 +499,10 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
      send_gdb "190-gdb-set build-id-verbose 0\n"
      gdb_expect 10 {
  	-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
-Index: gdb-6.8.50.20090302/gdb/tui/tui-interp.c
+Index: gdb-6.8.50.20090803/gdb/tui/tui-interp.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/tui/tui-interp.c	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/tui/tui-interp.c	2009-03-07 17:25:06.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/tui/tui-interp.c	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/tui/tui-interp.c	2009-08-03 16:17:59.000000000 +0200
 @@ -30,6 +30,7 @@
  #include "tui/tui.h"
  #include "tui/tui-io.h"
@@ -518,10 +520,10 @@ Index: gdb-6.8.50.20090302/gdb/tui/tui-i
        /* Tell readline what the prompt to display is and what function
           it will need to call after a whole line is read. This also
           displays the first prompt.  */
-Index: gdb-6.8.50.20090302/gdb/aclocal.m4
+Index: gdb-6.8.50.20090803/gdb/aclocal.m4
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/aclocal.m4	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/aclocal.m4	2009-03-07 17:25:06.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/aclocal.m4	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/aclocal.m4	2009-08-03 16:19:22.000000000 +0200
 @@ -11,6 +11,162 @@
  # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  # PARTICULAR PURPOSE.
@@ -685,47 +687,11 @@ Index: gdb-6.8.50.20090302/gdb/aclocal.m
  # Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
  #
  # This file is free software; the Free Software Foundation
-@@ -468,6 +624,27 @@ AC_DEFUN([AM_PROG_INSTALL_SH],
- install_sh=${install_sh-"$am_aux_dir/install-sh"}
- AC_SUBST(install_sh)])
- 
-+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
-+#
-+# This file is free software; the Free Software Foundation
-+# gives unlimited permission to copy and/or distribute it,
-+# with or without modifications, as long as this notice is preserved.
-+
-+# serial 2
-+
-+# Check whether the underlying file-system supports filenames
-+# with a leading dot.  For instance MS-DOS doesn't.
-+AC_DEFUN([AM_SET_LEADING_DOT],
-+[rm -rf .tst 2>/dev/null
-+mkdir .tst 2>/dev/null
-+if test -d .tst; then
-+  am__leading_dot=.
-+else
-+  am__leading_dot=_
-+fi
-+rmdir .tst 2>/dev/null
-+AC_SUBST([am__leading_dot])])
-+
- # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
- # From Jim Meyering
- 
-@@ -868,7 +1045,4 @@ m4_include([gnulib/m4/onceonly_2_57.m4])
- m4_include([gnulib/m4/stdint.m4])
- m4_include([gnulib/m4/string_h.m4])
- m4_include([gnulib/m4/wchar.m4])
--m4_include([../config/extensions.m4])
--m4_include([../config/lead-dot.m4])
--m4_include([../config/proginstall.m4])
- m4_include([acinclude.m4])
-Index: gdb-6.8.50.20090302/gdb/config.in
+Index: gdb-6.8.50.20090803/gdb/config.in
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/config.in	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/config.in	2009-03-07 17:25:06.000000000 +0100
-@@ -38,6 +38,9 @@
+--- gdb-6.8.50.20090803.orig/gdb/config.in	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/config.in	2009-08-03 16:17:59.000000000 +0200
+@@ -39,6 +39,9 @@
  /* Define to BFD's default target vector. */
  #undef DEFAULT_BFD_VEC
  
@@ -735,7 +701,7 @@ Index: gdb-6.8.50.20090302/gdb/config.in
  /* Define to 1 if translation of program messages to the user's native
     language is requested. */
  #undef ENABLE_NLS
-@@ -211,6 +214,9 @@
+@@ -218,6 +221,9 @@
  /* Define if Python 2.6 is being used. */
  #undef HAVE_LIBPYTHON2_6
  
@@ -745,16 +711,16 @@ Index: gdb-6.8.50.20090302/gdb/config.in
  /* Define if libunwind library is being used. */
  #undef HAVE_LIBUNWIND
  
-Index: gdb-6.8.50.20090302/gdb/configure
+Index: gdb-6.8.50.20090803/gdb/configure
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/configure	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/configure	2009-03-07 17:25:06.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/configure	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/configure	2009-08-03 16:20:09.000000000 +0200
 @@ -314,7 +314,7 @@ ac_subdirs_all="$ac_subdirs_all doc test
  ac_subdirs_all="$ac_subdirs_all gdbtk"
  ac_subdirs_all="$ac_subdirs_all multi-ice"
  ac_subdirs_all="$ac_subdirs_all gdbserver"
--ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP RANLIB ac_ct_RANLIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os am__leading_dot DEPDIR CCDEPMODE MAKE GMAKE_TRUE GMAKE_FALSE SET_MAKE USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT localedir GL_COND_LIBTOOL_TRUE GL_COND_LIBTOOL_FALSE GNULIB_MEMMEM GNULIB_MEMPCPY GNULIB_MEMRCHR GNULIB_STPCPY GNULIB_STPNCPY GNULIB_STRCHRNUL GNULIB_STRDUP GNULIB_STRNDUP GNULIB_STRNLEN GNULIB_STRPBRK GNULIB_STRSEP GNULIB_
 STRSTR GNULIB_STRCASESTR GNULIB_STRTOK_R GNULIB_MBSLEN GNULIB_MBSNLEN GNULIB_MBSCHR GNULIB_MBSRCHR GNULIB_MBSSTR GNULIB_MBSCASECMP GNULIB_MBSNCASECMP GNULIB_MBSPCASECMP GNULIB_MBSCASESTR GNULIB_MBSCSPN GNULIB_MBSPBRK GNULIB_MBSSPN GNULIB_MBSSEP GNULIB_MBSTOK_R GNULIB_STRERROR GNULIB_STRSIGNAL HAVE_DECL_MEMMEM HAVE_MEMPCPY HAVE_DECL_MEMRCHR HAVE_STPCPY HAVE_STPNCPY HAVE_STRCHRNUL HAVE_DECL_STRDUP HAVE_STRNDUP HAVE_DECL_STRNDUP HAVE_DECL_STRNLEN HAVE_STRPBRK HAVE_STRSEP HAVE_STRCASESTR HAVE_DECL_STRTOK_R HAVE_DECL_STRERROR HAVE_DECL_STRSIGNAL REPLACE_STRERROR REPLACE_STRSIGNAL REPLACE_MEMMEM REPLACE_STRCASESTR REPLACE_STRSTR HAVE_LONG_LONG_INT HAVE_UNSIGNED_LONG_LONG_INT HAVE_INTTYPES_H HAVE_SYS_TYPES_H INCLUDE_NEXT NEXT_STDINT_H HAVE_STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H BITSIZEOF_PTRDIFF_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_WCHAR_T BITSIZEOF_WINT_T HAVE_SIGNED_SIG_ATOMIC_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_WINT_T PTRDIFF_T_SUFFIX SIG_ATOMIC_T_SUFFIX SI
 ZE_T_SUFFIX WCHAR_T_SUFFIX WINT_T_SUFFIX STDINT_H NEXT_STRING_H GNULIB_WCWIDTH HAVE_DECL_WCWIDTH REPLACE_WCWIDTH WCHAR_H HAVE_WCHAR_H NEXT_WCHAR_H LIBGNU_LIBDEPS LIBGNU_LTLIBDEPS GNULIB_STDINT_H PACKAGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK AMTAR am__tar am__untar am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH am__fastdepCC_TRUE am__fastdepCC_FALSE GDB_DATADIR_PATH pythondir subdirs TARGET_OBS PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI LN_S YACC AR ac_ct_AR DLLTOOL ac_ct_DLLTOOL WINDRES ac_ct_WINDRES MIG ac_ct_MIG LIBICONV LIBICONV_INCLUDE LIBICONV_LIBDIR READLINE READLINE_DEPS READLINE_CFLAGS HAVE_LIBEXPAT LIBEXPAT LTLIBEXPAT PYTHON_CFLAGS ALLOCA CONFIG_LDFLAGS TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE WARN_CFLAGS WERROR_CFLAGS SER_HARDWIRE WIN32LIBS LIBGUI GUI_CFLAGS_X WIN32LDAPP TCL_VERSION TCL_PATCH_LEVEL TCL_BIN_DIR TCL_SRC
 _DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_INCLUDE TCL_LIBRARY TCL_DEPS TK_VERSION TK_BIN_DIR TK_SRC_DIR TK_LIB_FILE TK_LIB_FLAG TK_LIB_SPEC TK_STUB_LIB_FILE TK_STUB_LIB_FLAG TK_STUB_LIB_SPEC TK_INCLUDE TK_LIBRARY TK_DEPS TK_XINCLUDES X_CFLAGS X_LDFLAGS X_LIBS GDBTKLIBS GDBTK_CFLAGS GDBTK_SRC_DIR SIM SIM_OBS ENABLE_CFLAGS PROFILE_CFLAGS CONFIG_OBS CONFIG_DEPS CONFIG_SRCS CONFIG_ALL CONFIG_CLEAN CONFIG_INSTALL CONFIG_UNINSTALL target_subdir frags nm_h LIBOBJS LTLIBOBJS gl_LIBOBJS gl_LTLIBOBJS gltests_LIBOBJS gltests_LTLIBOBJS'
-+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP RANLIB ac_ct_RANLIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os am__leading_dot DEPDIR CCDEPMODE MAKE GMAKE_TRUE GMAKE_FALSE SET_MAKE USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT localedir GL_COND_LIBTOOL_TRUE GL_COND_LIBTOOL_FALSE GNULIB_MEMMEM GNULIB_MEMPCPY GNULIB_MEMRCHR GNULIB_STPCPY GNULIB_STPNCPY GNULIB_STRCHRNUL GNULIB_STRDUP GNULIB_STRNDUP GNULIB_STRNLEN GNULIB_STRPBRK GNULIB_STRSEP GNULIB_
 STRSTR GNULIB_STRCASESTR GNULIB_STRTOK_R GNULIB_MBSLEN GNULIB_MBSNLEN GNULIB_MBSCHR GNULIB_MBSRCHR GNULIB_MBSSTR GNULIB_MBSCASECMP GNULIB_MBSNCASECMP GNULIB_MBSPCASECMP GNULIB_MBSCASESTR GNULIB_MBSCSPN GNULIB_MBSPBRK GNULIB_MBSSPN GNULIB_MBSSEP GNULIB_MBSTOK_R GNULIB_STRERROR GNULIB_STRSIGNAL HAVE_DECL_MEMMEM HAVE_MEMPCPY HAVE_DECL_MEMRCHR HAVE_STPCPY HAVE_STPNCPY HAVE_STRCHRNUL HAVE_DECL_STRDUP HAVE_STRNDUP HAVE_DECL_STRNDUP HAVE_DECL_STRNLEN HAVE_STRPBRK HAVE_STRSEP HAVE_STRCASESTR HAVE_DECL_STRTOK_R HAVE_DECL_STRERROR HAVE_DECL_STRSIGNAL REPLACE_STRERROR REPLACE_STRSIGNAL REPLACE_MEMMEM REPLACE_STRCASESTR REPLACE_STRSTR HAVE_LONG_LONG_INT HAVE_UNSIGNED_LONG_LONG_INT HAVE_INTTYPES_H HAVE_SYS_TYPES_H INCLUDE_NEXT NEXT_STDINT_H HAVE_STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H BITSIZEOF_PTRDIFF_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_WCHAR_T BITSIZEOF_WINT_T HAVE_SIGNED_SIG_ATOMIC_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_WINT_T PTRDIFF_T_SUFFIX SIG_ATOMIC_T_SUFFIX SI
 ZE_T_SUFFIX WCHAR_T_SUFFIX WINT_T_SUFFIX STDINT_H NEXT_STRING_H GNULIB_WCWIDTH HAVE_DECL_WCWIDTH REPLACE_WCWIDTH WCHAR_H HAVE_WCHAR_H NEXT_WCHAR_H LIBGNU_LIBDEPS LIBGNU_LTLIBDEPS GNULIB_STDINT_H PACKAGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK AMTAR am__tar am__untar am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH am__fastdepCC_TRUE am__fastdepCC_FALSE GDB_DATADIR_PATH pythondir PKG_CONFIG ac_pt_PKG_CONFIG RPM_CFLAGS RPM_LIBS subdirs TARGET_OBS PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI LN_S YACC AR ac_ct_AR DLLTOOL ac_ct_DLLTOOL WINDRES ac_ct_WINDRES MIG ac_ct_MIG LIBICONV LIBICONV_INCLUDE LIBICONV_LIBDIR READLINE READLINE_DEPS READLINE_CFLAGS HAVE_LIBEXPAT LIBEXPAT LTLIBEXPAT PYTHON_CFLAGS ALLOCA CONFIG_LDFLAGS TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE WARN_CFLAGS WERROR_CFLAGS SER_HARDWIRE WIN32LIBS LIBGUI GUI_CFLAGS_X WIN32LDAPP
  TCL_VERSION TCL_PATCH_LEVEL TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_INCLUDE TCL_LIBRARY TCL_DEPS TK_VERSION TK_BIN_DIR TK_SRC_DIR TK_LIB_FILE TK_LIB_FLAG TK_LIB_SPEC TK_STUB_LIB_FILE TK_STUB_LIB_FLAG TK_STUB_LIB_SPEC TK_INCLUDE TK_LIBRARY TK_DEPS TK_XINCLUDES X_CFLAGS X_LDFLAGS X_LIBS GDBTKLIBS GDBTK_CFLAGS GDBTK_SRC_DIR SIM SIM_OBS ENABLE_CFLAGS PROFILE_CFLAGS CONFIG_OBS CONFIG_DEPS CONFIG_SRCS CONFIG_ALL CONFIG_CLEAN CONFIG_INSTALL CONFIG_UNINSTALL target_subdir frags nm_h LIBOBJS LTLIBOBJS gl_LIBOBJS gl_LTLIBOBJS gltests_LIBOBJS gltests_LTLIBOBJS'
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP RANLIB ac_ct_RANLIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os am__leading_dot DEPDIR CCDEPMODE MAKE GMAKE_TRUE GMAKE_FALSE SET_MAKE USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT localedir GL_COND_LIBTOOL_TRUE GL_COND_LIBTOOL_FALSE GNULIB_MEMMEM GNULIB_MEMPCPY GNULIB_MEMRCHR GNULIB_STPCPY GNULIB_STPNCPY GNULIB_STRCHRNUL GNULIB_STRDUP GNULIB_STRNDUP GNULIB_STRNLEN GNULIB_STRPBRK GNULIB_STRSEP GNULIB_
 STRSTR GNULIB_STRCASESTR GNULIB_STRTOK_R GNULIB_MBSLEN GNULIB_MBSNLEN GNULIB_MBSCHR GNULIB_MBSRCHR GNULIB_MBSSTR GNULIB_MBSCASECMP GNULIB_MBSNCASECMP GNULIB_MBSPCASECMP GNULIB_MBSCASESTR GNULIB_MBSCSPN GNULIB_MBSPBRK GNULIB_MBSSPN GNULIB_MBSSEP GNULIB_MBSTOK_R GNULIB_STRERROR GNULIB_STRSIGNAL HAVE_DECL_MEMMEM HAVE_MEMPCPY HAVE_DECL_MEMRCHR HAVE_STPCPY HAVE_STPNCPY HAVE_STRCHRNUL HAVE_DECL_STRDUP HAVE_STRNDUP HAVE_DECL_STRNDUP HAVE_DECL_STRNLEN HAVE_STRPBRK HAVE_STRSEP HAVE_STRCASESTR HAVE_DECL_STRTOK_R HAVE_DECL_STRERROR HAVE_DECL_STRSIGNAL REPLACE_STRERROR REPLACE_STRSIGNAL REPLACE_MEMMEM REPLACE_STRCASESTR REPLACE_STRSTR HAVE_LONG_LONG_INT HAVE_UNSIGNED_LONG_LONG_INT HAVE_INTTYPES_H HAVE_SYS_TYPES_H INCLUDE_NEXT NEXT_STDINT_H HAVE_STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H BITSIZEOF_PTRDIFF_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_WCHAR_T BITSIZEOF_WINT_T HAVE_SIGNED_SIG_ATOMIC_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_WINT_T PTRDIFF_T_SUFFIX SIG_ATOMIC_T_SUFFIX SI
 ZE_T_SUFFIX WCHAR_T_SUFFIX WINT_T_SUFFIX STDINT_H NEXT_STRING_H GNULIB_WCWIDTH HAVE_DECL_WCWIDTH REPLACE_WCWIDTH WCHAR_H HAVE_WCHAR_H NEXT_WCHAR_H LIBGNU_LIBDEPS LIBGNU_LTLIBDEPS GNULIB_STDINT_H PACKAGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK AMTAR am__tar am__untar am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH am__fastdepCC_TRUE am__fastdepCC_FALSE DEBUGDIR GDB_DATADIR GDB_DATADIR_PATH pythondir subdirs TARGET_OBS PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI LN_S YACC AR ac_ct_AR DLLTOOL ac_ct_DLLTOOL WINDRES ac_ct_WINDRES MIG ac_ct_MIG READLINE READLINE_DEPS READLINE_CFLAGS HAVE_LIBEXPAT LIBEXPAT LTLIBEXPAT PYTHON_CFLAGS ALLOCA CONFIG_LDFLAGS TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE SYSTEM_GDBINIT WARN_CFLAGS WERROR_CFLAGS SER_HARDWIRE WIN32LIBS LIBGUI GUI_CFLAGS_X WIN32LDAPP TCL_VERSION TCL_PATCH_LEVEL TCL_BIN_DIR TCL_SRC_DIR T
 CL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_INCLUDE TCL_LIBRARY TCL_DEPS TK_VERSION TK_BIN_DIR TK_SRC_DIR TK_LIB_FILE TK_LIB_FLAG TK_LIB_SPEC TK_STUB_LIB_FILE TK_STUB_LIB_FLAG TK_STUB_LIB_SPEC TK_INCLUDE TK_LIBRARY TK_DEPS TK_XINCLUDES X_CFLAGS X_LDFLAGS X_LIBS GDBTKLIBS GDBTK_CFLAGS GDBTK_SRC_DIR SIM SIM_OBS ENABLE_CFLAGS PROFILE_CFLAGS CONFIG_OBS CONFIG_DEPS CONFIG_SRCS CONFIG_ALL CONFIG_CLEAN CONFIG_INSTALL CONFIG_UNINSTALL target_subdir frags GDB_NM_FILE datarootdir docdir htmldir pdfdir LIBOBJS LTLIBOBJS gl_LIBOBJS gl_LTLIBOBJS gltests_LIBOBJS gltests_LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP RANLIB ac_ct_RANLIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os am__leading_dot DEPDIR CCDEPMODE MAKE GMAKE_TRUE GMAKE_FALSE SET_MAKE USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT localedir GL_COND_LIBTOOL_TRUE GL_COND_LIBTOOL_FALSE GNULIB_MEMMEM GNULIB_MEMPCPY GNULIB_MEMRCHR GNULIB_STPCPY GNULIB_STPNCPY GNULIB_STRCHRNUL GNULIB_STRDUP GNULIB_STRNDUP GNULIB_STRNLEN GNULIB_STRPBRK GNULIB_STRSEP GNULIB_
 STRSTR GNULIB_STRCASESTR GNULIB_STRTOK_R GNULIB_MBSLEN GNULIB_MBSNLEN GNULIB_MBSCHR GNULIB_MBSRCHR GNULIB_MBSSTR GNULIB_MBSCASECMP GNULIB_MBSNCASECMP GNULIB_MBSPCASECMP GNULIB_MBSCASESTR GNULIB_MBSCSPN GNULIB_MBSPBRK GNULIB_MBSSPN GNULIB_MBSSEP GNULIB_MBSTOK_R GNULIB_STRERROR GNULIB_STRSIGNAL HAVE_DECL_MEMMEM HAVE_MEMPCPY HAVE_DECL_MEMRCHR HAVE_STPCPY HAVE_STPNCPY HAVE_STRCHRNUL HAVE_DECL_STRDUP HAVE_STRNDUP HAVE_DECL_STRNDUP HAVE_DECL_STRNLEN HAVE_STRPBRK HAVE_STRSEP HAVE_STRCASESTR HAVE_DECL_STRTOK_R HAVE_DECL_STRERROR HAVE_DECL_STRSIGNAL REPLACE_STRERROR REPLACE_STRSIGNAL REPLACE_MEMMEM REPLACE_STRCASESTR REPLACE_STRSTR HAVE_LONG_LONG_INT HAVE_UNSIGNED_LONG_LONG_INT HAVE_INTTYPES_H HAVE_SYS_TYPES_H INCLUDE_NEXT NEXT_STDINT_H HAVE_STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H BITSIZEOF_PTRDIFF_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_WCHAR_T BITSIZEOF_WINT_T HAVE_SIGNED_SIG_ATOMIC_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_WINT_T PTRDIFF_T_SUFFIX SIG_ATOMIC_T_SUFFIX SI
 ZE_T_SUFFIX WCHAR_T_SUFFIX WINT_T_SUFFIX STDINT_H NEXT_STRING_H GNULIB_WCWIDTH HAVE_DECL_WCWIDTH REPLACE_WCWIDTH WCHAR_H HAVE_WCHAR_H NEXT_WCHAR_H LIBGNU_LIBDEPS LIBGNU_LTLIBDEPS GNULIB_STDINT_H PACKAGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK AMTAR am__tar am__untar am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH am__fastdepCC_TRUE am__fastdepCC_FALSE DEBUGDIR GDB_DATADIR GDB_DATADIR_PATH pythondir PKG_CONFIG ac_pt_PKG_CONFIG RPM_CFLAGS RPM_LIBS subdirs TARGET_OBS PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI LN_S YACC AR ac_ct_AR DLLTOOL ac_ct_DLLTOOL WINDRES ac_ct_WINDRES MIG ac_ct_MIG READLINE READLINE_DEPS READLINE_CFLAGS HAVE_LIBEXPAT LIBEXPAT LTLIBEXPAT PYTHON_CFLAGS ALLOCA CONFIG_LDFLAGS TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE SYSTEM_GDBINIT WARN_CFLAGS WERROR_CFLAGS SER_HARDWIRE WIN32LIBS LIBGUI GUI_CFLAGS_X WIN32LDAPP TCL_V
 ERSION TCL_PATCH_LEVEL TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_INCLUDE TCL_LIBRARY TCL_DEPS TK_VERSION TK_BIN_DIR TK_SRC_DIR TK_LIB_FILE TK_LIB_FLAG TK_LIB_SPEC TK_STUB_LIB_FILE TK_STUB_LIB_FLAG TK_STUB_LIB_SPEC TK_INCLUDE TK_LIBRARY TK_DEPS TK_XINCLUDES X_CFLAGS X_LDFLAGS X_LIBS GDBTKLIBS GDBTK_CFLAGS GDBTK_SRC_DIR SIM SIM_OBS ENABLE_CFLAGS PROFILE_CFLAGS CONFIG_OBS CONFIG_DEPS CONFIG_SRCS CONFIG_ALL CONFIG_CLEAN CONFIG_INSTALL CONFIG_UNINSTALL target_subdir frags GDB_NM_FILE datarootdir docdir htmldir pdfdir LIBOBJS LTLIBOBJS gl_LIBOBJS gl_LTLIBOBJS gltests_LIBOBJS gltests_LTLIBOBJS'
  ac_subst_files='host_makefile_frag'
  ac_pwd=`pwd`
  
@@ -777,16 +743,16 @@ Index: gdb-6.8.50.20090302/gdb/configure
  
  #
  # Report the --help message.
-@@ -886,6 +898,8 @@ Optional Packages:
+@@ -895,6 +907,8 @@ Optional Packages:
                            [DATADIR/gdb]
    --with-pythondir        install Python data files in this path
                            [DATADIR/gdb/python]
 +  --with-rpm              query rpm database for missing debuginfos
 +                          [yes/no,], [def.], [auto=librpm.so]
-   --with-libunwind            Use libunwind frame unwinding support
-   --with-pkgversion=PKG   Use PKG in the version string in place of "GDB"
-   --with-bugurl=URL       Direct users to URL to report a bug
-@@ -913,6 +927,9 @@ Some influential environment variables:
+   --with-libunwind        use libunwind frame unwinding support
+   --with-curses           use the curses library instead of the termcap
+                           library
+@@ -932,6 +946,9 @@ Some influential environment variables:
    CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
                headers in a nonstandard directory <include dir>
    CPP         C preprocessor
@@ -796,56 +762,7 @@ Index: gdb-6.8.50.20090302/gdb/configure
  
  Use these variables to override the choices made by `configure' or to help
  it to find libraries and programs with nonstandard names/locations.
-@@ -6556,7 +6573,6 @@ am__api_version="1.9"
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # OS/2's system install, which has a completely different semantic
- # ./install, which can be erroneously created by make from ./install.sh.
--# Reject install programs that cannot install multiple files.
- echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
- echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
-@@ -6590,18 +6606,8 @@ case $as_dir/ in
- 	    # program-specific install script used by HP pwplus--don't use.
- 	    :
- 	  else
--	    rm -rf conftest.one conftest.two conftest.dir
--	    echo one > conftest.one
--	    echo two > conftest.two
--	    mkdir conftest.dir
--	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
--	      test -s conftest.one && test -s conftest.two &&
--	      test -s conftest.dir/conftest.one &&
--	      test -s conftest.dir/conftest.two
--	    then
--	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
--	      break 3
--	    fi
-+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-+	    break 3
- 	  fi
- 	fi
-       done
-@@ -6610,16 +6616,15 @@ case $as_dir/ in
- esac
- done
- 
--rm -rf conftest.one conftest.two conftest.dir
- 
- fi
-   if test "${ac_cv_path_install+set}" = set; then
-     INSTALL=$ac_cv_path_install
-   else
--    # As a last resort, use the slow shell script.  Don't cache a
--    # value for INSTALL within a source directory, because that will
-+    # As a last resort, use the slow shell script.  We don't cache a
-+    # path for INSTALL within a source directory, because that will
-     # break other packages using the cache if that directory is
--    # removed, or if the value is a relative name.
-+    # removed, or if the path is relative.
-     INSTALL=$ac_install_sh
-   fi
- fi
-@@ -7202,6 +7207,559 @@ _ACEOF
+@@ -7290,6 +7307,559 @@ _ACEOF
  fi
  
  
@@ -1405,57 +1322,8 @@ Index: gdb-6.8.50.20090302/gdb/configure
  
  
  
-@@ -8623,7 +9181,6 @@ done
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # OS/2's system install, which has a completely different semantic
- # ./install, which can be erroneously created by make from ./install.sh.
--# Reject install programs that cannot install multiple files.
- echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
- echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
-@@ -8657,18 +9214,8 @@ case $as_dir/ in
- 	    # program-specific install script used by HP pwplus--don't use.
- 	    :
- 	  else
--	    rm -rf conftest.one conftest.two conftest.dir
--	    echo one > conftest.one
--	    echo two > conftest.two
--	    mkdir conftest.dir
--	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
--	      test -s conftest.one && test -s conftest.two &&
--	      test -s conftest.dir/conftest.one &&
--	      test -s conftest.dir/conftest.two
--	    then
--	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
--	      break 3
--	    fi
-+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-+	    break 3
- 	  fi
- 	fi
-       done
-@@ -8677,16 +9224,15 @@ case $as_dir/ in
- esac
- done
- 
--rm -rf conftest.one conftest.two conftest.dir
- 
- fi
-   if test "${ac_cv_path_install+set}" = set; then
-     INSTALL=$ac_cv_path_install
-   else
--    # As a last resort, use the slow shell script.  Don't cache a
--    # value for INSTALL within a source directory, because that will
-+    # As a last resort, use the slow shell script.  We don't cache a
-+    # path for INSTALL within a source directory, because that will
-     # break other packages using the cache if that directory is
--    # removed, or if the value is a relative name.
-+    # removed, or if the path is relative.
-     INSTALL=$ac_install_sh
-   fi
- fi
-@@ -22270,6 +22816,10 @@ s, at am__fastdepCC_TRUE@,$am__fastdepCC_TR
- s, at am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+@@ -22513,6 +23083,10 @@ s, at DEBUGDIR@,$DEBUGDIR,;t t
+ s, at GDB_DATADIR@,$GDB_DATADIR,;t t
  s, at GDB_DATADIR_PATH@,$GDB_DATADIR_PATH,;t t
  s, at pythondir@,$pythondir,;t t
 +s, at PKG_CONFIG@,$PKG_CONFIG,;t t
@@ -1465,11 +1333,11 @@ Index: gdb-6.8.50.20090302/gdb/configure
  s, at subdirs@,$subdirs,;t t
  s, at TARGET_OBS@,$TARGET_OBS,;t t
  s, at PKGVERSION@,$PKGVERSION,;t t
-Index: gdb-6.8.50.20090302/gdb/configure.ac
+Index: gdb-6.8.50.20090803/gdb/configure.ac
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/configure.ac	2009-03-07 17:13:33.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/configure.ac	2009-03-07 17:25:06.000000000 +0100
-@@ -162,6 +162,199 @@ else
+--- gdb-6.8.50.20090803.orig/gdb/configure.ac	2009-08-03 16:17:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/configure.ac	2009-08-03 16:17:59.000000000 +0200
+@@ -153,6 +153,199 @@ else
  fi
  AC_SUBST(pythondir)
  

gdb-6.6-buildid-locate.patch:
 corelow.c                    |   61 ++++
 doc/gdb.texinfo              |   21 +
 solib-svr4.c                 |   30 +-
 symfile.c                    |  636 +++++++++++++++++++++++++++++++++++++++----
 symfile.h                    |    7 
 testsuite/lib/gdb.exp        |   10 
 testsuite/lib/mi-support.exp |   10 
 7 files changed, 724 insertions(+), 51 deletions(-)

Index: gdb-6.6-buildid-locate.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-buildid-locate.patch,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -p -r1.22 -r1.23
--- gdb-6.6-buildid-locate.patch	22 Jun 2009 11:19:51 -0000	1.22
+++ gdb-6.6-buildid-locate.patch	4 Aug 2009 05:37:28 -0000	1.23
@@ -1,7 +1,7 @@
-Index: gdb-6.8.50.20090302/gdb/corelow.c
+Index: gdb-6.8.50.20090803/gdb/corelow.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/corelow.c	2009-02-23 01:03:48.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/corelow.c	2009-03-07 17:04:57.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/corelow.c	2009-07-31 17:25:21.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/corelow.c	2009-08-04 06:32:12.000000000 +0200
 @@ -45,6 +45,10 @@
  #include "exceptions.h"
  #include "solib.h"
@@ -13,7 +13,7 @@ Index: gdb-6.8.50.20090302/gdb/corelow.c
  
  
  #ifndef O_LARGEFILE
-@@ -267,6 +271,50 @@ add_to_thread_list (bfd *abfd, asection 
+@@ -273,6 +277,50 @@ add_to_thread_list (bfd *abfd, asection 
      inferior_ptid = ptid;			 /* Yes, make it current */
  }
  
@@ -64,7 +64,7 @@ Index: gdb-6.8.50.20090302/gdb/corelow.c
  /* This routine opens and sets up the core file bfd.  */
  
  static void
-@@ -363,6 +417,12 @@ core_open (char *filename, int from_tty)
+@@ -371,6 +419,12 @@ core_open (char *filename, int from_tty)
    push_target (&core_ops);
    discard_cleanups (old_chain);
  
@@ -77,7 +77,7 @@ Index: gdb-6.8.50.20090302/gdb/corelow.c
    add_inferior_silent (corelow_pid);
  
    /* Do this before acknowledging the inferior, so if
-@@ -751,4 +811,11 @@ _initialize_corelow (void)
+@@ -878,4 +932,11 @@ _initialize_corelow (void)
    init_core_ops ();
  
    add_target (&core_ops);
@@ -89,11 +89,11 @@ Index: gdb-6.8.50.20090302/gdb/corelow.c
 +			   NULL, NULL, NULL,
 +			   &setlist, &showlist);
  }
-Index: gdb-6.8.50.20090302/gdb/doc/gdb.texinfo
+Index: gdb-6.8.50.20090803/gdb/doc/gdb.texinfo
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/doc/gdb.texinfo	2009-03-07 17:04:56.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/doc/gdb.texinfo	2009-03-07 17:04:57.000000000 +0100
-@@ -13294,6 +13294,27 @@ information files.
+--- gdb-6.8.50.20090803.orig/gdb/doc/gdb.texinfo	2009-08-04 06:31:59.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/doc/gdb.texinfo	2009-08-04 06:32:12.000000000 +0200
+@@ -13733,6 +13733,27 @@ information files.
  
  @end table
  
@@ -121,11 +121,11 @@ Index: gdb-6.8.50.20090302/gdb/doc/gdb.t
  @cindex @code{.gnu_debuglink} sections
  @cindex debug link sections
  A debug link is a special section of the executable file named
-Index: gdb-6.8.50.20090302/gdb/solib-svr4.c
+Index: gdb-6.8.50.20090803/gdb/solib-svr4.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/solib-svr4.c	2009-03-07 17:04:52.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/solib-svr4.c	2009-03-07 17:04:57.000000000 +0100
-@@ -1000,9 +1000,33 @@ svr4_current_sos (void)
+--- gdb-6.8.50.20090803.orig/gdb/solib-svr4.c	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/solib-svr4.c	2009-08-04 06:32:12.000000000 +0200
+@@ -1101,9 +1101,33 @@ svr4_current_sos (void)
  		     safe_strerror (errcode));
  	  else
  	    {
@@ -162,11 +162,11 @@ Index: gdb-6.8.50.20090302/gdb/solib-svr
  	    }
  	  xfree (buffer);
  
-Index: gdb-6.8.50.20090302/gdb/symfile.c
+Index: gdb-6.8.50.20090803/gdb/symfile.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile.c	2009-03-07 17:04:53.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/symfile.c	2009-03-07 17:22:21.000000000 +0100
-@@ -54,6 +54,7 @@
+--- gdb-6.8.50.20090803.orig/gdb/symfile.c	2009-08-04 06:31:58.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile.c	2009-08-04 06:32:12.000000000 +0200
+@@ -55,6 +55,7 @@
  #include "elf-bfd.h"
  #include "solib.h"
  #include "remote.h"
@@ -174,8 +174,8 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
  #include <sys/types.h>
  #include <fcntl.h>
-@@ -1185,16 +1186,65 @@ symbol_file_clear (int from_tty)
-       printf_unfiltered (_("No symbol file now.\n"));
+@@ -1193,16 +1194,65 @@ symbol_file_clear (int from_tty)
+     printf_unfiltered (_("No symbol file now.\n"));
  }
  
 +/* Locate NT_GNU_BUILD_ID and return its matching debug filename.
@@ -242,7 +242,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  {
    struct build_id *retval;
  
-@@ -1210,6 +1260,348 @@ build_id_bfd_get (bfd *abfd)
+@@ -1218,6 +1268,348 @@ build_id_bfd_get (bfd *abfd)
    return retval;
  }
  
@@ -591,7 +591,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  /* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value.  */
  
  static int
-@@ -1227,7 +1619,7 @@ build_id_verify (const char *filename, s
+@@ -1235,7 +1627,7 @@ build_id_verify (const char *filename, s
    if (abfd == NULL)
      return 0;
  
@@ -600,7 +600,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
    if (found == NULL)
      warning (_("File \"%s\" has no build-id, file skipped"), filename);
-@@ -1246,8 +1638,9 @@ build_id_verify (const char *filename, s
+@@ -1254,8 +1646,9 @@ build_id_verify (const char *filename, s
    return retval;
  }
  
@@ -612,7 +612,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  {
    char *link, *s, *retval = NULL;
    gdb_byte *data = build_id->data;
-@@ -1255,7 +1648,9 @@ build_id_to_debug_filename (struct build
+@@ -1263,7 +1656,9 @@ build_id_to_debug_filename (struct build
  
    /* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
    link = xmalloc (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1
@@ -623,7 +623,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
    s = link + sprintf (link, "%s/.build-id/", debug_file_directory);
    if (size > 0)
      {
-@@ -1266,12 +1661,14 @@ build_id_to_debug_filename (struct build
+@@ -1274,12 +1669,14 @@ build_id_to_debug_filename (struct build
      *s++ = '/';
    while (size-- > 0)
      s += sprintf (s, "%02x", (unsigned) *data++);
@@ -640,7 +640,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
    if (retval != NULL && !build_id_verify (retval, build_id))
      {
-@@ -1279,9 +1676,150 @@ build_id_to_debug_filename (struct build
+@@ -1287,9 +1684,150 @@ build_id_to_debug_filename (struct build
        retval = NULL;
      }
  
@@ -791,7 +791,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  static char *
  get_debug_link_info (struct objfile *objfile, unsigned long *crc32_out)
  {
-@@ -1364,32 +1894,36 @@ static char *
+@@ -1372,32 +1910,36 @@ static char *
  find_separate_debug_file (struct objfile *objfile)
  {
    asection *sect;
@@ -836,7 +836,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
      }
  
    basename = get_debug_link_info (objfile, &crc32);
-@@ -1397,7 +1931,7 @@ find_separate_debug_file (struct objfile
+@@ -1405,7 +1947,7 @@ find_separate_debug_file (struct objfile
    if (basename == NULL)
      /* There's no separate debug info, hence there's no way we could
         load it => no warning.  */
@@ -845,7 +845,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
    dir = xstrdup (objfile->name);
  
-@@ -1413,23 +1947,19 @@ find_separate_debug_file (struct objfile
+@@ -1421,23 +1963,19 @@ find_separate_debug_file (struct objfile
    gdb_assert (i >= 0 && IS_DIR_SEPARATOR (dir[i]));
    dir[i+1] = '\0';
  
@@ -876,7 +876,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
    /* Then try in the subdirectory named DEBUG_SUBDIRECTORY.  */
    strcpy (debugfile, dir);
-@@ -1438,11 +1968,7 @@ find_separate_debug_file (struct objfile
+@@ -1446,11 +1984,7 @@ find_separate_debug_file (struct objfile
    strcat (debugfile, basename);
  
    if (separate_debug_file_exists (debugfile, crc32, objfile->name))
@@ -889,7 +889,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
    /* Then try in the global debugfile directory.  */
    strcpy (debugfile, debug_file_directory);
-@@ -1451,11 +1977,7 @@ find_separate_debug_file (struct objfile
+@@ -1459,11 +1993,7 @@ find_separate_debug_file (struct objfile
    strcat (debugfile, basename);
  
    if (separate_debug_file_exists (debugfile, crc32, objfile->name))
@@ -902,7 +902,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  
    /* If the file is in the sysroot, try using its base path in the
       global debugfile directory.  */
-@@ -1470,20 +1992,18 @@ find_separate_debug_file (struct objfile
+@@ -1478,20 +2008,18 @@ find_separate_debug_file (struct objfile
        strcat (debugfile, basename);
  
        if (separate_debug_file_exists (debugfile, crc32, objfile->name))
@@ -931,7 +931,7 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
  }
  
  
-@@ -4216,4 +4736,16 @@ Show printing of symbol loading messages
+@@ -4243,4 +4771,16 @@ Show printing of symbol loading messages
                             NULL,
                             NULL,
                             &setprintlist, &showprintlist);
@@ -948,11 +948,11 @@ Index: gdb-6.8.50.20090302/gdb/symfile.c
 +
 +  observer_attach_executable_changed (debug_print_executable_changed);
  }
-Index: gdb-6.8.50.20090302/gdb/symfile.h
+Index: gdb-6.8.50.20090803/gdb/symfile.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/symfile.h	2009-03-07 17:04:52.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/symfile.h	2009-03-07 17:13:33.000000000 +0100
-@@ -372,6 +372,13 @@ extern int symfile_map_offsets_to_segmen
+--- gdb-6.8.50.20090803.orig/gdb/symfile.h	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/symfile.h	2009-08-04 06:32:12.000000000 +0200
+@@ -388,6 +388,13 @@ extern int symfile_map_offsets_to_segmen
  struct symfile_segment_data *get_symfile_segment_data (bfd *abfd);
  void free_symfile_segment_data (struct symfile_segment_data *data);
  
@@ -966,11 +966,11 @@ Index: gdb-6.8.50.20090302/gdb/symfile.h
  /* From dwarf2read.c */
  
  extern int dwarf2_has_info (struct objfile *);
-Index: gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/lib/gdb.exp
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/lib/gdb.exp	2009-03-07 17:04:52.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/lib/gdb.exp	2009-03-07 17:13:33.000000000 +0100
-@@ -1230,6 +1230,16 @@ proc default_gdb_start { } {
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/lib/gdb.exp	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/lib/gdb.exp	2009-08-04 06:32:12.000000000 +0200
+@@ -1248,6 +1248,16 @@ proc default_gdb_start { } {
  	    warning "Couldn't set the width to 0."
  	}
      }
@@ -987,8 +987,10 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
      return 0;
  }
  
---- ./gdb/testsuite/lib/mi-support.exp	2009-03-21 21:09:09.000000000 +0100
-+++ ./gdb/testsuite/lib/mi-support.exp	2009-03-22 16:37:58.000000000 +0100
+Index: gdb-6.8.50.20090803/gdb/testsuite/lib/mi-support.exp
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/lib/mi-support.exp	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/lib/mi-support.exp	2009-08-04 06:32:12.000000000 +0200
 @@ -221,6 +221,16 @@ proc default_mi_gdb_start { args } {
  	    }
      	}

gdb-6.6-multifork-debugreg.patch:
 amd64-linux-nat.c                               |  113 ++++++++++++++-
 config/i386/nm-linux.h                          |   10 +
 config/i386/nm-linux64.h                        |   10 +
 doc/gdb.texinfo                                 |    8 +
 i386-linux-nat.c                                |  108 ++++++++++++++-
 i386-nat.c                                      |   12 +
 ia64-linux-nat.c                                |   64 ++++++++
 ppc-linux-nat.c                                 |   57 +++++++
 s390-nat.c                                      |   82 ++++++++++-
 target.h                                        |    4 
 testsuite/gdb.threads/watchpoint-fork-forkoff.c |  172 ++++++++++++++++++++++++
 testsuite/gdb.threads/watchpoint-fork-mt.c      |  154 +++++++++++++++++++++
 testsuite/gdb.threads/watchpoint-fork.c         |   56 +++++++
 testsuite/gdb.threads/watchpoint-fork.exp       |  140 +++++++++++++++++++
 14 files changed, 964 insertions(+), 26 deletions(-)

Index: gdb-6.6-multifork-debugreg.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-multifork-debugreg.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- gdb-6.6-multifork-debugreg.patch	11 Feb 2009 00:04:47 -0000	1.9
+++ gdb-6.6-multifork-debugreg.patch	4 Aug 2009 05:37:28 -0000	1.10
@@ -28,12 +28,12 @@ http://sourceware.org/ml/gdb-patches/200
 	* s390-nat.c (s390_fix_watch_points): Fix its compilation failure
 	- rename it to S390_FIX_WATCH_POINTS_LIST.
 
-Index: gdb-6.8.50.20090209/gdb/amd64-linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/amd64-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/amd64-linux-nat.c	2009-02-09 16:02:27.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/amd64-linux-nat.c	2009-02-09 16:03:30.000000000 +0100
-@@ -408,25 +408,43 @@ amd64_linux_dr_set (ptid_t ptid, int reg
- void
+--- gdb-6.8.50.20090803.orig/gdb/amd64-linux-nat.c	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/amd64-linux-nat.c	2009-08-04 07:17:58.000000000 +0200
+@@ -411,25 +411,43 @@ amd64_linux_dr_set (ptid_t ptid, int reg
+ static void
  amd64_linux_dr_set_control (unsigned long control)
  {
 -  struct lwp_info *lp;
@@ -58,7 +58,7 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
 +    }
  }
  
- void
+ static void
  amd64_linux_dr_set_addr (int regnum, CORE_ADDR addr)
  {
 -  struct lwp_info *lp;
@@ -85,8 +85,8 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
 +    }
  }
  
- void
-@@ -451,6 +469,41 @@ amd64_linux_new_thread (ptid_t ptid)
+ static void
+@@ -454,6 +472,42 @@ amd64_linux_new_thread (ptid_t ptid)
  
    amd64_linux_dr_set (ptid, DR_CONTROL, amd64_linux_dr[DR_CONTROL]);
  }
@@ -108,7 +108,7 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
 +  /* FOLLOW-FORK-MODE CHILD runs later the CHILD with no restrictions.  */
 +  amd64_linux_detach_breakpoints_pid = 0;
 +
-+  return i386_remove_watchpoint (addr, len, type);
++  return target_remove_watchpoint (addr, len, type);
 +}
 +
 +static void
@@ -116,6 +116,7 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
 +{
 +  struct cleanup *old_chain = save_inferior_ptid ();
 +  int i;
++  extern void i386_detach_breakpoints (int detached_pid);
 +
 +  amd64_linux_detach_breakpoints_pid = detached_pid;
 +  /* Depend on `!is_lwp (inferior_ptid)' for the I386_* macros.  */
@@ -128,7 +129,7 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
  
  
  /* This function is called by libthread_db as part of its handling of
-@@ -755,6 +808,42 @@ amd64_linux_siginfo_fixup (struct siginf
+@@ -767,6 +821,42 @@ amd64_linux_siginfo_fixup (struct siginf
      return 0;
  }
  
@@ -171,7 +172,7 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
  /* Provide a prototype to silence -Wmissing-prototypes.  */
  void _initialize_amd64_linux_nat (void);
  
-@@ -791,6 +880,9 @@ _initialize_amd64_linux_nat (void)
+@@ -809,6 +899,9 @@ _initialize_amd64_linux_nat (void)
    linux_elfcore_write_prstatus = amd64_linux_elfcore_write_prstatus;
    linux_elfcore_write_prfpreg = amd64_linux_elfcore_write_prfpreg;
  
@@ -181,24 +182,11 @@ Index: gdb-6.8.50.20090209/gdb/amd64-lin
    /* Register the target.  */
    linux_nat_add_target (t);
    linux_nat_set_new_thread (t, amd64_linux_new_thread);
-Index: gdb-6.8.50.20090209/gdb/config/i386/nm-i386.h
-===================================================================
---- gdb-6.8.50.20090209.orig/gdb/config/i386/nm-i386.h	2009-01-03 06:57:54.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/config/i386/nm-i386.h	2009-02-09 16:02:42.000000000 +0100
-@@ -120,6 +120,8 @@ extern int i386_stopped_by_watchpoint (v
- 
- #endif /* I386_WATCHPOINTS_IN_TARGET_VECTOR */
- 
-+extern void i386_detach_breakpoints (int detached_pid);
-+
- #endif /* I386_USE_GENERIC_WATCHPOINTS */
- 
- #endif /* NM_I386_H */
-Index: gdb-6.8.50.20090209/gdb/i386-linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/i386-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/i386-linux-nat.c	2009-01-03 06:57:51.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/i386-linux-nat.c	2009-02-09 16:02:42.000000000 +0100
-@@ -634,21 +634,42 @@ i386_linux_dr_set_control (unsigned long
+--- gdb-6.8.50.20090803.orig/gdb/i386-linux-nat.c	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/i386-linux-nat.c	2009-08-04 07:26:43.000000000 +0200
+@@ -637,21 +637,42 @@ i386_linux_dr_set_control (unsigned long
    ptid_t ptid;
  
    i386_linux_dr[DR_CONTROL] = control;
@@ -220,7 +208,7 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
 +    }
  }
  
- void
+ static void
  i386_linux_dr_set_addr (int regnum, CORE_ADDR addr)
  {
 -  struct lwp_info *lp;
@@ -247,8 +235,8 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
 +    }
  }
  
- void
-@@ -673,6 +694,41 @@ i386_linux_new_thread (ptid_t ptid)
+ static void
+@@ -676,6 +697,42 @@ i386_linux_new_thread (ptid_t ptid)
  
    i386_linux_dr_set (ptid, DR_CONTROL, i386_linux_dr[DR_CONTROL]);
  }
@@ -270,7 +258,7 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
 +  /* FOLLOW-FORK-MODE CHILD runs later the CHILD with no restrictions.  */
 +  i386_linux_detach_breakpoints_pid = 0;
 +
-+  return i386_remove_watchpoint (addr, len, type);
++  return target_remove_watchpoint (addr, len, type);
 +}
 +
 +static void
@@ -278,6 +266,7 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
 +{
 +  struct cleanup *old_chain = save_inferior_ptid ();
 +  int i;
++  extern void i386_detach_breakpoints (int detached_pid);
 +
 +  i386_linux_detach_breakpoints_pid = detached_pid;
 +  /* Depend on `!is_lwp (inferior_ptid)' for the I386_* macros.  */
@@ -290,7 +279,7 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
  
  
  /* Called by libthread_db.  Returns a pointer to the thread local
-@@ -812,6 +868,40 @@ i386_linux_child_post_startup_inferior (
+@@ -818,6 +875,40 @@ i386_linux_child_post_startup_inferior (
    super_post_startup_inferior (ptid);
  }
  
@@ -331,7 +320,7 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
  void
  _initialize_i386_linux_nat (void)
  {
-@@ -833,6 +923,9 @@ _initialize_i386_linux_nat (void)
+@@ -845,6 +936,9 @@ _initialize_i386_linux_nat (void)
    t->to_fetch_registers = i386_linux_fetch_inferior_registers;
    t->to_store_registers = i386_linux_store_inferior_registers;
  
@@ -341,11 +330,11 @@ Index: gdb-6.8.50.20090209/gdb/i386-linu
    /* Register the target.  */
    linux_nat_add_target (t);
    linux_nat_set_new_thread (t, i386_linux_new_thread);
-Index: gdb-6.8.50.20090209/gdb/i386-nat.c
+Index: gdb-6.8.50.20090803/gdb/i386-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/i386-nat.c	2009-01-03 06:57:51.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/i386-nat.c	2009-02-09 16:02:42.000000000 +0100
-@@ -546,6 +546,17 @@ i386_remove_watchpoint (CORE_ADDR addr, 
+--- gdb-6.8.50.20090803.orig/gdb/i386-nat.c	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/i386-nat.c	2009-08-04 07:17:58.000000000 +0200
+@@ -520,6 +520,18 @@ i386_remove_watchpoint (CORE_ADDR addr, 
    return retval;
  }
  
@@ -355,18 +344,19 @@ Index: gdb-6.8.50.20090209/gdb/i386-nat.
 +  int i;
 +
 +  /* Do not touch any DR_MIRROR or DR_CONTROL_MIRROR mirrors here.  */
-+  I386_DR_LOW_SET_CONTROL (0);
-+  ALL_DEBUG_REGISTERS(i)
-+    I386_DR_LOW_RESET_ADDR (i);
++  i386_dr_low.set_control (0);
++  if (i386_dr_low.reset_addr)
++    ALL_DEBUG_REGISTERS(i)
++      i386_dr_low.reset_addr (i);
 +}
 +
  /* Return non-zero if we can watch a memory region that starts at
     address ADDR and whose length is LEN bytes.  */
  
-Index: gdb-6.8.50.20090209/gdb/ia64-linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/ia64-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/ia64-linux-nat.c	2009-02-09 15:48:43.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/ia64-linux-nat.c	2009-02-09 16:02:42.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/ia64-linux-nat.c	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/ia64-linux-nat.c	2009-08-04 07:17:58.000000000 +0200
 @@ -583,6 +583,12 @@ ia64_linux_insert_watchpoint (CORE_ADDR 
    return 0;
  }
@@ -415,7 +405,7 @@ Index: gdb-6.8.50.20090209/gdb/ia64-linu
  ia64_linux_new_thread (ptid_t ptid)
  {
    int i, any;
-@@ -805,6 +832,40 @@ ia64_linux_xfer_partial (struct target_o
+@@ -807,6 +834,40 @@ ia64_linux_xfer_partial (struct target_o
  			     offset, len);
  }
  
@@ -456,7 +446,7 @@ Index: gdb-6.8.50.20090209/gdb/ia64-linu
  void _initialize_ia64_linux_nat (void);
  
  /*
-@@ -899,6 +960,9 @@ _initialize_ia64_linux_nat (void)
+@@ -901,6 +962,9 @@ _initialize_ia64_linux_nat (void)
    t->to_insert_watchpoint = ia64_linux_insert_watchpoint;
    t->to_remove_watchpoint = ia64_linux_remove_watchpoint;
  
@@ -466,11 +456,11 @@ Index: gdb-6.8.50.20090209/gdb/ia64-linu
    /* Register the target.  */
    linux_nat_add_target (t);
    linux_nat_set_new_thread (t, ia64_linux_new_thread);
-Index: gdb-6.8.50.20090209/gdb/ppc-linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/ppc-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/ppc-linux-nat.c	2009-01-03 06:57:52.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/ppc-linux-nat.c	2009-02-09 16:02:42.000000000 +0100
-@@ -1118,6 +1118,12 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
+--- gdb-6.8.50.20090803.orig/gdb/ppc-linux-nat.c	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/ppc-linux-nat.c	2009-08-04 07:17:58.000000000 +0200
+@@ -1377,6 +1377,12 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
    return 0;
  }
  
@@ -483,7 +473,7 @@ Index: gdb-6.8.50.20090209/gdb/ppc-linux
  static int
  ppc_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw)
  {
-@@ -1125,6 +1131,11 @@ ppc_linux_remove_watchpoint (CORE_ADDR a
+@@ -1384,6 +1390,11 @@ ppc_linux_remove_watchpoint (CORE_ADDR a
    ptid_t ptid;
    long dabr_value = 0;
  
@@ -495,7 +485,7 @@ Index: gdb-6.8.50.20090209/gdb/ppc-linux
    saved_dabr_value = 0;
    ALL_LWPS (lp, ptid)
      if (ptrace (PTRACE_SET_DEBUGREG, TIDGET (ptid), 0, saved_dabr_value) < 0)
-@@ -1138,6 +1149,15 @@ ppc_linux_new_thread (ptid_t ptid)
+@@ -1397,6 +1408,15 @@ ppc_linux_new_thread (ptid_t ptid)
    ptrace (PTRACE_SET_DEBUGREG, TIDGET (ptid), 0, saved_dabr_value);
  }
  
@@ -511,7 +501,7 @@ Index: gdb-6.8.50.20090209/gdb/ppc-linux
  static int
  ppc_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
  {
-@@ -1318,6 +1338,40 @@ ppc_linux_read_description (struct targe
+@@ -1629,6 +1649,40 @@ ppc_linux_read_description (struct targe
    return isa205? tdesc_powerpc_isa205_32l : tdesc_powerpc_32l;
  }
  
@@ -552,9 +542,9 @@ Index: gdb-6.8.50.20090209/gdb/ppc-linux
  void _initialize_ppc_linux_nat (void);
  
  void
-@@ -1343,6 +1397,9 @@ _initialize_ppc_linux_nat (void)
- 
+@@ -1655,6 +1709,9 @@ _initialize_ppc_linux_nat (void)
    t->to_read_description = ppc_linux_read_description;
+   t->to_auxv_parse = ppc_linux_auxv_parse;
  
 +  ppc_linux_super_follow_fork = t->to_follow_fork;
 +  t->to_follow_fork = ppc_linux_follow_fork;
@@ -562,11 +552,11 @@ Index: gdb-6.8.50.20090209/gdb/ppc-linux
    /* Register the target.  */
    linux_nat_add_target (t);
    linux_nat_set_new_thread (t, ppc_linux_new_thread);
-Index: gdb-6.8.50.20090209/gdb/s390-nat.c
+Index: gdb-6.8.50.20090803/gdb/s390-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/s390-nat.c	2007-11-07 07:36:57.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/s390-nat.c	2009-02-09 16:02:42.000000000 +0100
-@@ -283,21 +283,15 @@ s390_stopped_by_watchpoint (void)
+--- gdb-6.8.50.20090803.orig/gdb/s390-nat.c	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/s390-nat.c	2009-08-04 07:17:58.000000000 +0200
+@@ -285,21 +285,15 @@ s390_stopped_by_watchpoint (void)
  }
  
  static void
@@ -590,7 +580,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
      {
        watch_lo_addr = min (watch_lo_addr, area->lo_addr);
        watch_hi_addr = max (watch_hi_addr, area->hi_addr);
-@@ -309,7 +303,7 @@ s390_fix_watch_points (ptid_t ptid)
+@@ -311,7 +305,7 @@ s390_fix_watch_points (ptid_t ptid)
    if (ptrace (PTRACE_PEEKUSR_AREA, tid, &parea) < 0)
      perror_with_name (_("Couldn't retrieve watchpoint status"));
  
@@ -599,7 +589,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
      {
        per_info.control_regs.bits.em_storage_alteration = 1;
        per_info.control_regs.bits.storage_alt_space_ctl = 1;
-@@ -326,6 +320,18 @@ s390_fix_watch_points (ptid_t ptid)
+@@ -328,6 +322,18 @@ s390_fix_watch_points (ptid_t ptid)
      perror_with_name (_("Couldn't modify watchpoint status"));
  }
  
@@ -618,7 +608,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
  static int
  s390_insert_watchpoint (CORE_ADDR addr, int len, int type)
  {
-@@ -347,6 +353,12 @@ s390_insert_watchpoint (CORE_ADDR addr, 
+@@ -349,6 +355,12 @@ s390_insert_watchpoint (CORE_ADDR addr, 
    return 0;
  }
  
@@ -631,7 +621,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
  static int
  s390_remove_watchpoint (CORE_ADDR addr, int len, int type)
  {
-@@ -354,6 +366,11 @@ s390_remove_watchpoint (CORE_ADDR addr, 
+@@ -356,6 +368,11 @@ s390_remove_watchpoint (CORE_ADDR addr, 
    ptid_t ptid;
    struct watch_area *area, **parea;
  
@@ -643,7 +633,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
    for (parea = &watch_base; *parea; parea = &(*parea)->next)
      if ((*parea)->lo_addr == addr
  	&& (*parea)->hi_addr == addr + len - 1)
-@@ -361,8 +378,10 @@ s390_remove_watchpoint (CORE_ADDR addr, 
+@@ -363,8 +380,10 @@ s390_remove_watchpoint (CORE_ADDR addr, 
  
    if (!*parea)
      {
@@ -654,7 +644,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
        return -1;
      }
  
-@@ -375,6 +394,15 @@ s390_remove_watchpoint (CORE_ADDR addr, 
+@@ -377,6 +396,15 @@ s390_remove_watchpoint (CORE_ADDR addr, 
    return 0;
  }
  
@@ -670,7 +660,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
  static int
  s390_can_use_hw_breakpoint (int type, int cnt, int othertype)
  {
-@@ -387,6 +415,39 @@ s390_region_ok_for_hw_watchpoint (CORE_A
+@@ -389,6 +417,39 @@ s390_region_ok_for_hw_watchpoint (CORE_A
    return 1;
  }
  
@@ -710,7 +700,7 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
  
  void _initialize_s390_nat (void);
  
-@@ -410,6 +471,9 @@ _initialize_s390_nat (void)
+@@ -412,6 +473,9 @@ _initialize_s390_nat (void)
    t->to_insert_watchpoint = s390_insert_watchpoint;
    t->to_remove_watchpoint = s390_remove_watchpoint;
  
@@ -720,10 +710,10 @@ Index: gdb-6.8.50.20090209/gdb/s390-nat.
    /* Register the target.  */
    linux_nat_add_target (t);
    linux_nat_set_new_thread (t, s390_fix_watch_points);
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c	2009-02-09 16:02:42.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c	2009-08-04 07:17:58.000000000 +0200
 @@ -0,0 +1,172 @@
 +/* Test case for forgotten hw-watchpoints after fork()-off of a process.
 +
@@ -897,10 +887,10 @@ Index: gdb-6.8.50.20090209/gdb/testsuite
 +#else
 +# error "!FOLLOW_PARENT && !FOLLOW_CHILD"
 +#endif
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c	2009-02-09 16:02:42.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c	2009-08-04 07:17:58.000000000 +0200
 @@ -0,0 +1,154 @@
 +/* Test case for forgotten hw-watchpoints after fork()-off of a process.
 +
@@ -1056,10 +1046,10 @@ Index: gdb-6.8.50.20090209/gdb/testsuite
 +
 +  return 0;
 +}
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.c	2009-02-09 16:02:42.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork.c	2009-08-04 07:17:58.000000000 +0200
 @@ -0,0 +1,56 @@
 +/* Test case for forgotten hw-watchpoints after fork()-off of a process.
 +
@@ -1117,10 +1107,10 @@ Index: gdb-6.8.50.20090209/gdb/testsuite
 +
 +  return 0;
 +}
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.exp	2009-02-09 16:02:42.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/watchpoint-fork.exp	2009-08-04 07:17:58.000000000 +0200
 @@ -0,0 +1,140 @@
 +# Copyright 2008 Free Software Foundation, Inc.
 +
@@ -1262,11 +1252,11 @@ Index: gdb-6.8.50.20090209/gdb/testsuite
 +if {[istarget "*-*-linux*"]} {
 +    test child FOLLOW_CHILD
 +}
-Index: gdb-6.8.50.20090209/gdb/doc/gdb.texinfo
+Index: gdb-6.8.50.20090803/gdb/doc/gdb.texinfo
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/doc/gdb.texinfo	2009-02-09 16:02:35.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo	2009-02-09 16:02:42.000000000 +0100
-@@ -3588,6 +3588,14 @@ confident that no other thread can becom
+--- gdb-6.8.50.20090803.orig/gdb/doc/gdb.texinfo	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/doc/gdb.texinfo	2009-08-04 07:17:58.000000000 +0200
+@@ -3625,6 +3625,14 @@ confident that no other thread can becom
  software watchpoints as usual.  However, @value{GDBN} may not notice
  when a non-current thread's activity changes the expression.  (Hardware
  watchpoints, in contrast, watch an expression in all threads.)
@@ -1281,15 +1271,14 @@ Index: gdb-6.8.50.20090209/gdb/doc/gdb.t
  @end quotation
  
  @xref{set remote hardware-watchpoint-limit}.
-Index: gdb-6.8.50.20090209/gdb/config/i386/nm-linux.h
+Index: gdb-6.8.50.20090803/gdb/config/i386/nm-linux.h
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/config/i386/nm-linux.h	2009-01-03 06:57:54.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/config/i386/nm-linux.h	2009-02-09 16:02:42.000000000 +0100
-@@ -46,6 +46,16 @@ extern void i386_linux_dr_reset_addr (in
- extern unsigned long i386_linux_dr_get_status (void);
- #define I386_DR_LOW_GET_STATUS() \
-   i386_linux_dr_get_status ()
-+
+--- gdb-6.8.50.20090803.orig/gdb/config/i386/nm-linux.h	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/config/i386/nm-linux.h	2009-08-04 07:17:58.000000000 +0200
+@@ -29,4 +29,14 @@
+ #define FILL_FPXREGSET
+ #endif
+ 
 +/* Remove a watchpoint that watched the memory region which starts at
 + *    address ADDR, whose length is LEN bytes, and for accesses of the
 + *       type TYPE.  Return 0 on success, -1 on failure.  */
@@ -1299,13 +1288,12 @@ Index: gdb-6.8.50.20090209/gdb/config/i3
 +   insertion/removal to support threads.  */
 +#define target_remove_watchpoint(addr, len, type) \
 +  i386_linux_remove_watchpoint (addr, len, type)
- 
- 
- #ifdef HAVE_PTRACE_GETFPXREGS
-Index: gdb-6.8.50.20090209/gdb/config/i386/nm-linux64.h
++
+ #endif /* nm-linux.h */
+Index: gdb-6.8.50.20090803/gdb/config/i386/nm-linux64.h
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/config/i386/nm-linux64.h	2009-01-03 06:57:54.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/config/i386/nm-linux64.h	2009-02-09 16:02:42.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/config/i386/nm-linux64.h	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/config/i386/nm-linux64.h	2009-08-04 07:17:58.000000000 +0200
 @@ -51,4 +51,14 @@ extern unsigned long amd64_linux_dr_get_
  #define I386_DR_LOW_GET_STATUS() \
    amd64_linux_dr_get_status ()
@@ -1321,12 +1309,15 @@ Index: gdb-6.8.50.20090209/gdb/config/i3
 +  amd64_linux_remove_watchpoint (addr, len, type)
 +
  #endif /* nm-linux64.h */
-Index: gdb-6.8.50.20090209/gdb/target.h
+Index: gdb-6.8.50.20090803/gdb/target.h
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/target.h	2009-02-09 15:49:25.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/target.h	2009-02-09 16:02:42.000000000 +0100
-@@ -1113,7 +1113,9 @@ extern char *normal_pid_to_str (ptid_t p
- #ifndef target_insert_watchpoint
+--- gdb-6.8.50.20090803.orig/gdb/target.h	2009-08-04 07:17:19.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/target.h	2009-08-04 07:35:13.000000000 +0200
+@@ -1114,11 +1114,15 @@ extern char *normal_pid_to_str (ptid_t p
+    for write, 1 for read, and 2 for read/write accesses.  Returns 0 for
+    success, non-zero for failure.  */
+ 
++#ifndef target_insert_watchpoint
  #define	target_insert_watchpoint(addr, len, type)	\
       (*current_target.to_insert_watchpoint) (addr, len, type)
 +#endif
@@ -1334,4 +1325,7 @@ Index: gdb-6.8.50.20090209/gdb/target.h
 +#ifndef target_remove_watchpoint
  #define	target_remove_watchpoint(addr, len, type)	\
       (*current_target.to_remove_watchpoint) (addr, len, type)
- #endif
++#endif
+ 
+ #define target_insert_hw_breakpoint(gdbarch, bp_tgt) \
+      (*current_target.to_insert_hw_breakpoint) (gdbarch, bp_tgt)

gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch:
 inferior.h  |   10 +++++++++-
 infrun.c    |   51 ++++++++++++++++++++++++++++++++-------------------
 linux-nat.c |    5 ++++-
 linux-nat.h |    4 ++--
 4 files changed, 47 insertions(+), 23 deletions(-)

Index: gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch	14 Dec 2008 14:05:16 -0000	1.5
+++ gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch	4 Aug 2009 05:37:28 -0000	1.6
@@ -21,11 +21,11 @@
 
 	Port to GDB-6.8pre.
 
-Index: gdb-6.8.50.20081209/gdb/inferior.h
+Index: gdb-6.8.50.20090803/gdb/inferior.h
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/inferior.h	2008-11-20 01:35:23.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/inferior.h	2008-12-10 01:22:23.000000000 +0100
-@@ -168,7 +168,15 @@ extern void reopen_exec_file (void);
+--- gdb-6.8.50.20090803.orig/gdb/inferior.h	2009-06-28 02:20:22.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/inferior.h	2009-08-03 17:19:56.000000000 +0200
+@@ -181,7 +181,15 @@ extern void reopen_exec_file (void);
  /* The `resume' routine should only be called in special circumstances.
     Normally, use `proceed', which handles a lot of bookkeeping.  */
  
@@ -42,20 +42,20 @@ Index: gdb-6.8.50.20081209/gdb/inferior.
  
  /* From misc files */
  
-Index: gdb-6.8.50.20081209/gdb/infrun.c
+Index: gdb-6.8.50.20090803/gdb/infrun.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/infrun.c	2008-12-02 20:20:23.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/infrun.c	2008-12-10 01:23:46.000000000 +0100
-@@ -73,7 +73,7 @@ static int follow_fork (void);
+--- gdb-6.8.50.20090803.orig/gdb/infrun.c	2009-07-31 01:01:27.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/infrun.c	2009-08-03 21:39:28.000000000 +0200
+@@ -74,7 +74,7 @@ static int follow_fork (void);
  static void set_schedlock_func (char *args, int from_tty,
  				struct cmd_list_element *c);
  
 -static int currently_stepping (struct thread_info *tp);
 +static enum resume_step currently_stepping (struct thread_info *tp);
  
- static int currently_stepping_callback (struct thread_info *tp, void *data);
- 
-@@ -961,7 +961,7 @@ set_schedlock_func (char *args, int from
+ static int currently_stepping_or_nexting_callback (struct thread_info *tp,
+ 						   void *data);
+@@ -1137,7 +1137,7 @@ maybe_software_singlestep (struct gdbarc
     STEP nonzero if we should step (zero to continue instead).
     SIG is the signal to give the inferior (zero for none).  */
  void
@@ -64,7 +64,7 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
  {
    int should_resume = 1;
    struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
-@@ -975,10 +975,12 @@ resume (int step, enum target_signal sig
+@@ -1149,10 +1149,12 @@ resume (int step, enum target_signal sig
    QUIT;
  
    if (debug_infrun)
@@ -81,7 +81,7 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
  
    /* Some targets (e.g. Solaris x86) have a kernel bug when stepping
       over an instruction that causes a page fault without triggering
-@@ -1127,9 +1129,10 @@ a command like `return' or `jump' to con
+@@ -1271,9 +1273,10 @@ a command like `return' or `jump' to con
  	     individually.  */
  	  resume_ptid = inferior_ptid;
  	}
@@ -94,16 +94,16 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
  	{
  	  /* User-settable 'scheduler' mode requires solo thread resume. */
  	  resume_ptid = inferior_ptid;
-@@ -1302,7 +1305,7 @@ proceed (CORE_ADDR addr, enum target_sig
-   struct gdbarch *gdbarch = get_regcache_arch (regcache);
+@@ -1474,7 +1477,7 @@ proceed (CORE_ADDR addr, enum target_sig
+   struct gdbarch *gdbarch;
    struct thread_info *tp;
-   CORE_ADDR pc = regcache_read_pc (regcache);
+   CORE_ADDR pc;
 -  int oneproc = 0;
 +  enum resume_step resume_step = RESUME_STEP_CONTINUE;
  
-   if (step > 0)
-     step_start_function = find_pc_function (pc);
-@@ -1322,13 +1325,13 @@ proceed (CORE_ADDR addr, enum target_sig
+   /* If we're stopped at a fork/vfork, follow the branch set by the
+      "set follow-fork-mode" command; otherwise, we'll just proceed
+@@ -1508,13 +1511,13 @@ proceed (CORE_ADDR addr, enum target_sig
  	   actually be executing the breakpoint insn anyway.
  	   We'll be (un-)executing the previous instruction.  */
  
@@ -119,7 +119,7 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
      }
    else
      {
-@@ -1359,13 +1362,13 @@ proceed (CORE_ADDR addr, enum target_sig
+@@ -1545,13 +1548,13 @@ proceed (CORE_ADDR addr, enum target_sig
  	 is required it returns TRUE and sets the current thread to
  	 the old thread. */
        if (prepare_to_proceed (step))
@@ -135,7 +135,7 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
      {
        tp->trap_expected = 1;
        /* If displaced stepping is enabled, we can step over the
-@@ -1451,8 +1454,13 @@ proceed (CORE_ADDR addr, enum target_sig
+@@ -1637,8 +1640,13 @@ proceed (CORE_ADDR addr, enum target_sig
    /* Reset to normal state.  */
    init_infwait_state ();
  
@@ -150,16 +150,21 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
  
    /* Wait for it to stop (if not standalone)
       and in any case decode why it stopped, and act accordingly.  */
-@@ -3690,10 +3698,16 @@ currently_stepping_callback (struct thre
-   return tp != data && currently_stepping_thread (tp);
- }
+@@ -4171,13 +4179,18 @@ infrun: not switching back to stepped th
+ 
+ /* Is thread TP in the middle of single-stepping?  */
  
 -static int
 +static enum resume_step
  currently_stepping (struct thread_info *tp)
  {
--  return currently_stepping_thread (tp) || bpstat_should_step ();
-+  if (currently_stepping_thread (tp))
+-  return ((tp->step_range_end && tp->step_resume_breakpoint == NULL)
+- 	  || tp->trap_expected
+- 	  || tp->stepping_through_solib_after_catch
+- 	  || bpstat_should_step ());
++  if ((tp->step_range_end && tp->step_resume_breakpoint == NULL)
++      || tp->trap_expected
++      || tp->stepping_through_solib_after_catch)
 +    return RESUME_STEP_USER;
 +
 +  if (bpstat_should_step ())
@@ -168,12 +173,12 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
 +  return RESUME_STEP_CONTINUE;
  }
  
- /* Inferior has stepped into a subroutine call with source code that
-Index: gdb-6.8.50.20081209/gdb/linux-nat.c
+ /* Returns true if any thread *but* the one passed in "data" is in the
+Index: gdb-6.8.50.20090803/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/linux-nat.c	2008-12-02 08:57:36.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/linux-nat.c	2008-12-10 01:22:23.000000000 +0100
-@@ -2343,7 +2343,10 @@ count_events_callback (struct lwp_info *
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c	2009-07-31 17:25:21.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.c	2009-08-03 21:39:10.000000000 +0200
+@@ -2351,7 +2351,10 @@ count_events_callback (struct lwp_info *
  static int
  select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
  {
@@ -185,10 +190,10 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
      return 1;
    else
      return 0;
-Index: gdb-6.8.50.20081209/gdb/linux-nat.h
+Index: gdb-6.8.50.20090803/gdb/linux-nat.h
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/linux-nat.h	2008-07-27 23:12:40.000000000 +0200
-+++ gdb-6.8.50.20081209/gdb/linux-nat.h	2008-12-10 01:22:23.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.h	2009-05-18 19:11:25.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.h	2009-08-03 21:39:09.000000000 +0200
 @@ -55,8 +55,8 @@ struct lwp_info
    /* If non-zero, a pending wait status.  */
    int status;

gdb-6.7-testsuite-stable-results.patch:
 ./gdb/testsuite/gdb.base/fileio.c       |   33 ++++++++++++++++++++++++++++++++
 ./gdb/testsuite/gdb.base/fileio.exp     |   10 ++++-----
 sources/gdb/testsuite/gdb.base/dump.exp |    4 ++-
 3 files changed, 41 insertions(+), 6 deletions(-)

Index: gdb-6.7-testsuite-stable-results.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.7-testsuite-stable-results.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- gdb-6.7-testsuite-stable-results.patch	11 Feb 2009 00:04:47 -0000	1.6
+++ gdb-6.7-testsuite-stable-results.patch	4 Aug 2009 05:37:28 -0000	1.7
@@ -116,93 +116,3 @@ frames-invalid can happen asynchronously
  	"array partial with expressions" 4 "intarray2\[3\]"
  
    gdb_test "print intarray2\[2\] == 0" " = 1" "element 2 not changed, == 4"
---- gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp-orig	2009-02-09 16:31:11.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp	2009-02-09 21:27:38.000000000 +0100
-@@ -286,7 +286,7 @@ if [target_info exists gdb,nosignals] {
- } else {
-     send_gdb "signal SIGUSR1\n"
-     gdb_expect {
--	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
-+	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n(\r\n\032\032frames-invalid\r\n)*\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
- 	    { pass "send SIGUSR1" }
- 	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
- 	    { setup_xfail "*-*-*" 1270
---- ./gdb/testsuite/gdb.base/auxv.exp	2009-02-11 00:54:54.000000000 +0100
-+++ ./gdb/testsuite/gdb.base/auxv.exp	2009-02-11 00:51:30.000000000 +0100
-@@ -78,8 +78,10 @@ proc fetch_auxv {test} {
- 
-     set auxv_lines {}
-     set bad -1
-+    # Former trailing `\[\r\n\]+' may eat just \r leaving \n in the buffer
-+    # corrupting the next matches.
-     if {[gdb_test_multiple "info auxv" $test {
--	-re "info auxv\[\r\n\]+" {
-+	-re "info auxv\r\n" {
- 	    exp_continue
- 	}
- 	-ex "The program has no auxiliary information now" {
-@@ -94,20 +96,20 @@ proc fetch_auxv {test} {
- 	    set bad 1
- 	    exp_continue
- 	}
--	-re "^\[0-9\]+\[ \t\]+(AT_\[^ \t\]+)\[^\r\n\]+\[\r\n\]+" {
-+	-re "^\[0-9\]+\[ \t\]+(AT_\[^ \t\]+)\[^\r\n\]+\r\n" {
- 	    lappend auxv_lines $expect_out(0,string)
- 	    exp_continue
- 	}
--	-re "^\[0-9\]+\[ \t\]+\\?\\?\\?\[^\r\n\]+\[\r\n\]+" {
-+	-re "^\[0-9\]+\[ \t\]+\\?\\?\\?\[^\r\n\]+\r\n" {
- 	    warning "Unrecognized tag value: $expect_out(0,string)"
- 	    set bad 1
- 	    lappend auxv_lines $expect_out(0,string)
- 	    exp_continue
- 	}
--	-re ".*$gdb_prompt $" {
-+	-re "$gdb_prompt $" {
- 	    incr bad
- 	}
--	-re "^\[^\r\n\]+\[\r\n\]+" {
-+	-re "^\[^\r\n\]+\r\n" {
- 	    if {!$bad} {
- 		warning "Unrecognized output: $expect_out(0,string)"
- 		set bad 1
---- ./gdb/testsuite/gdb.base/callfuncs.exp	2009-01-03 06:58:03.000000000 +0100
-+++ ./gdb/testsuite/gdb.base/callfuncs.exp	2009-02-11 00:51:42.000000000 +0100
-@@ -249,15 +249,17 @@ proc fetch_all_registers {test} {
- 
-     set all_registers_lines {}
-     set bad -1
-+    # Former trailing `\[\r\n\]+' may eat just \r leaving \n in the buffer
-+    # corrupting the next matches.
-     if {[gdb_test_multiple "info all-registers" $test {
--	-re "info all-registers\[\r\n\]+" {
-+	-re "info all-registers\r\n" {
- 	    exp_continue
- 	}
- 	-ex "The program has no registers now" {
- 	    set bad 1
- 	    exp_continue
- 	}
--	-re "^bspstore\[ \t\]+\[^\r\n\]+\[\r\n\]+" {
-+	-re "^bspstore\[ \t\]+\[^\r\n\]+\r\n" {
- 	    if [istarget "ia64-*-*"] {
- 		# Filter out bspstore which is specially tied to bsp,
- 		# giving spurious differences.
-@@ -266,14 +268,14 @@ proc fetch_all_registers {test} {
- 	    }
- 	    exp_continue
- 	}
--	-re "^\[^ \t\]+\[ \t\]+\[^\r\n\]+\[\r\n\]+" {
-+	-re "^\[^ \t\]+\[ \t\]+\[^\r\n\]+\r\n" {
- 	    lappend all_registers_lines $expect_out(0,string)
- 	    exp_continue
- 	}
--	-re ".*$gdb_prompt $" {
-+	-re "$gdb_prompt $" {
- 	    incr bad
- 	}
--	-re "^\[^\r\n\]+\[\r\n\]+" {
-+	-re "^\[^\r\n\]+\r\n" {
- 	    if {!$bad} {
- 		warning "Unrecognized output: $expect_out(0,string)"
- 		set bad 1

gdb-6.8-attach-signalled-detach-stopped.patch:
 linux-nat.c                              |   28 +++++++++++++-
 testsuite/gdb.threads/attach-stopped.exp |   60 ++++++++++++++++++++++++++++++-
 testsuite/gdb.threads/attachstop-mt.exp  |   17 +++++++-
 3 files changed, 100 insertions(+), 5 deletions(-)

Index: gdb-6.8-attach-signalled-detach-stopped.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-attach-signalled-detach-stopped.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- gdb-6.8-attach-signalled-detach-stopped.patch	11 Feb 2009 00:04:47 -0000	1.4
+++ gdb-6.8-attach-signalled-detach-stopped.patch	4 Aug 2009 05:37:28 -0000	1.5
@@ -1,8 +1,8 @@
-Index: gdb-6.8.50.20090209/gdb/linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/linux-nat.c	2009-02-09 16:12:23.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/linux-nat.c	2009-02-09 16:15:30.000000000 +0100
-@@ -204,6 +204,9 @@ blocked.  */
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c	2009-08-03 17:24:03.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.c	2009-08-03 17:27:23.000000000 +0200
+@@ -202,6 +202,9 @@ blocked.  */
  static struct target_ops *linux_ops;
  static struct target_ops linux_ops_saved;
  
@@ -12,10 +12,10 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
  /* The method to call, if any, when a new thread is attached.  */
  static void (*linux_nat_new_thread) (ptid_t);
  
-@@ -902,7 +905,14 @@ linux_child_follow_fork (struct target_o
- 	  fork_save_infrun_state (fp, 0);
+@@ -790,7 +793,14 @@ linux_child_follow_fork (struct target_o
+ 	  linux_parent_pid = parent_pid;
  	}
-       else
+       else if (detach_fork)
 -	target_detach (NULL, 0);
 +	{
 +	  /* We should check PID_WAS_STOPPED and detach it stopped accordingly.
@@ -27,8 +27,8 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
 +	}
  
        inferior_ptid = ptid_build (child_pid, child_pid, 0);
- 
-@@ -1229,6 +1239,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
+       add_thread (inferior_ptid);
+@@ -1231,6 +1241,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
        if (debug_linux_nat)
  	fprintf_unfiltered (gdb_stdlog,
  			    "LNPAW: Attaching to a stopped process\n");
@@ -36,7 +36,7 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
  
        /* The process is definitely stopped.  It is in a job control
  	 stop, unless the kernel predates the TASK_STOPPED /
-@@ -1561,6 +1572,9 @@ GPT: lwp %s had signal %s, but it is in 
+@@ -1512,6 +1523,9 @@ GPT: lwp %s had signal %s, but it is in 
  	*status = lp->status;
      }
  
@@ -46,7 +46,7 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
    return 0;
  }
  
-@@ -1671,6 +1685,8 @@ linux_nat_detach (struct target_ops *ops
+@@ -1621,6 +1635,8 @@ linux_nat_detach (struct target_ops *ops
      }
    else
      linux_ops->to_detach (ops, args, from_tty);
@@ -55,7 +55,7 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
  }
  
  /* Resume LP.  */
-@@ -1825,6 +1841,14 @@ linux_nat_resume (ptid_t ptid, int step_
+@@ -1774,6 +1790,14 @@ linux_nat_resume (struct target_ops *ops
       resume_callback.  */
    lp->stopped = 0;
  
@@ -67,10 +67,10 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
 +  if (!step && lp && pid_was_stopped == GET_PID (lp->ptid))
 +    pid_was_stopped = 0;
 +
-   if (resume_all)
-     iterate_over_lwps (resume_callback, NULL);
+   if (resume_many)
+     iterate_over_lwps (ptid, resume_callback, NULL);
  
-@@ -3316,6 +3340,8 @@ linux_nat_mourn_inferior (struct target_
+@@ -3322,6 +3346,8 @@ linux_nat_mourn_inferior (struct target_
         there are other viable forks to debug.  Delete the exiting
         one and context-switch to the first available.  */
      linux_fork_mourn_inferior ();
@@ -79,10 +79,10 @@ Index: gdb-6.8.50.20090209/gdb/linux-nat
  }
  
  /* Convert a native/host siginfo object, into/from the siginfo in the
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attach-stopped.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/attach-stopped.exp
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.threads/attach-stopped.exp	2009-01-03 06:58:07.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attach-stopped.exp	2009-02-09 16:12:41.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.threads/attach-stopped.exp	2009-01-03 06:58:07.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/attach-stopped.exp	2009-08-03 17:26:22.000000000 +0200
 @@ -62,7 +62,65 @@ proc corefunc { threadtype } {
      gdb_reinitialize_dir $srcdir/$subdir
      gdb_load ${binfile}
@@ -150,10 +150,10 @@ Index: gdb-6.8.50.20090209/gdb/testsuite
         
      set test "$threadtype: attach2 to stopped, after setting file"
      gdb_test_multiple "attach $testpid" "$test" {
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attachstop-mt.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/attachstop-mt.exp
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.threads/attachstop-mt.exp	2009-01-03 06:58:07.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attachstop-mt.exp	2009-02-09 16:12:41.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.threads/attachstop-mt.exp	2009-01-03 06:58:07.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.threads/attachstop-mt.exp	2009-08-03 17:26:22.000000000 +0200
 @@ -176,12 +176,23 @@ gdb_test "bt" ".*sleep.*(func|main).*" "
  # Exit and detach the process.
  gdb_exit

gdb-6.8-bz254229-gcore-prpsinfo.patch:
 bfd/elf-bfd.h         |    2 
 bfd/elf.c             |   25 +++++--
 gdb/amd64-linux-nat.c |   15 +++-
 gdb/fbsd-nat.c        |    1 
 gdb/linux-nat.c       |  172 +++++++++++++++++++++++++++++++++++++++++++++++++-
 gdb/linux-nat.h       |    2 
 gdb/procfs.c          |    1 
 7 files changed, 203 insertions(+), 15 deletions(-)

Index: gdb-6.8-bz254229-gcore-prpsinfo.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-bz254229-gcore-prpsinfo.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- gdb-6.8-bz254229-gcore-prpsinfo.patch	14 Dec 2008 14:05:17 -0000	1.2
+++ gdb-6.8-bz254229-gcore-prpsinfo.patch	4 Aug 2009 05:37:28 -0000	1.3
@@ -1,8 +1,8 @@
-Index: gdb-6.8.50.20081209/bfd/elf-bfd.h
+Index: gdb-6.8.50.20090803/bfd/elf-bfd.h
 ===================================================================
---- gdb-6.8.50.20081209.orig/bfd/elf-bfd.h	2008-12-03 15:50:57.000000000 +0100
-+++ gdb-6.8.50.20081209/bfd/elf-bfd.h	2008-12-10 01:35:08.000000000 +0100
-@@ -2154,7 +2154,7 @@ extern Elf_Internal_Phdr * _bfd_elf_find
+--- gdb-6.8.50.20090803.orig/bfd/elf-bfd.h	2009-07-23 15:00:20.000000000 +0200
++++ gdb-6.8.50.20090803/bfd/elf-bfd.h	2009-08-03 17:21:25.000000000 +0200
+@@ -2115,7 +2115,7 @@ extern Elf_Internal_Phdr * _bfd_elf_find
  extern char *elfcore_write_note
    (bfd *, char *, int *, const char *, int, const void *, int);
  extern char *elfcore_write_prpsinfo
@@ -11,11 +11,11 @@ Index: gdb-6.8.50.20081209/bfd/elf-bfd.h
  extern char *elfcore_write_prstatus
    (bfd *, char *, int *, long, int, const void *);
  extern char * elfcore_write_pstatus
-Index: gdb-6.8.50.20081209/bfd/elf.c
+Index: gdb-6.8.50.20090803/bfd/elf.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/bfd/elf.c	2008-12-03 15:50:57.000000000 +0100
-+++ gdb-6.8.50.20081209/bfd/elf.c	2008-12-10 01:35:08.000000000 +0100
-@@ -8345,6 +8345,7 @@ char *
+--- gdb-6.8.50.20090803.orig/bfd/elf.c	2009-07-23 15:00:20.000000000 +0200
++++ gdb-6.8.50.20090803/bfd/elf.c	2009-08-03 17:23:13.000000000 +0200
+@@ -8381,6 +8381,7 @@ char *
  elfcore_write_prpsinfo (bfd  *abfd,
  			char *buf,
  			int  *bufsiz,
@@ -23,7 +23,7 @@ Index: gdb-6.8.50.20081209/bfd/elf.c
  			const char *fname,
  			const char *psargs)
  {
-@@ -8371,9 +8372,15 @@ elfcore_write_prpsinfo (bfd  *abfd,
+@@ -8407,9 +8408,15 @@ elfcore_write_prpsinfo (bfd  *abfd,
        int note_type = NT_PRPSINFO;
  #endif
  
@@ -42,7 +42,7 @@ Index: gdb-6.8.50.20081209/bfd/elf.c
        return elfcore_write_note (abfd, buf, bufsiz,
  				 note_name, note_type, &data, sizeof (data));
      }
-@@ -8388,9 +8395,15 @@ elfcore_write_prpsinfo (bfd  *abfd,
+@@ -8424,9 +8431,15 @@ elfcore_write_prpsinfo (bfd  *abfd,
        int note_type = NT_PRPSINFO;
  #endif
  
@@ -61,19 +61,19 @@ Index: gdb-6.8.50.20081209/bfd/elf.c
        return elfcore_write_note (abfd, buf, bufsiz,
  				 note_name, note_type, &data, sizeof (data));
      }
-Index: gdb-6.8.50.20081209/gdb/amd64-linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/amd64-linux-nat.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/amd64-linux-nat.c	2008-12-10 01:28:28.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/amd64-linux-nat.c	2008-12-10 01:35:08.000000000 +0100
-@@ -139,6 +139,7 @@ static int amd64_linux_gregset32_reg_off
+--- gdb-6.8.50.20090803.orig/gdb/amd64-linux-nat.c	2009-08-03 17:19:57.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/amd64-linux-nat.c	2009-08-03 17:21:25.000000000 +0200
+@@ -140,6 +140,7 @@ static int amd64_linux_gregset32_reg_off
  
  static char *
  amd64_linux_elfcore_write_prpsinfo (bfd *abfd, char *buf, int *bufsiz,
 +				    void *info,
  				    const char *fname, const char *psargs)
  {
-   if (gdbarch_ptr_bit(current_gdbarch) == 32)
-@@ -148,14 +149,20 @@ amd64_linux_elfcore_write_prpsinfo (bfd 
+   if (gdbarch_ptr_bit (target_gdbarch) == 32)
+@@ -149,14 +150,20 @@ amd64_linux_elfcore_write_prpsinfo (bfd 
        struct elf_prpsinfo32 data;
        note_type = NT_PRPSINFO;
  
@@ -98,11 +98,11 @@ Index: gdb-6.8.50.20081209/gdb/amd64-lin
  }
  
  static void
-Index: gdb-6.8.50.20081209/gdb/fbsd-nat.c
+Index: gdb-6.8.50.20090803/gdb/fbsd-nat.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/fbsd-nat.c	2008-10-28 16:22:12.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/fbsd-nat.c	2008-12-10 01:35:08.000000000 +0100
-@@ -210,6 +210,7 @@ fbsd_make_corefile_notes (bfd *obfd, int
+--- gdb-6.8.50.20090803.orig/gdb/fbsd-nat.c	2009-07-02 19:21:06.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/fbsd-nat.c	2009-08-03 17:21:25.000000000 +0200
+@@ -211,6 +211,7 @@ fbsd_make_corefile_notes (bfd *obfd, int
  	psargs = reconcat (psargs, psargs, " ", get_inferior_args (), NULL);
  
        note_data = elfcore_write_prpsinfo (obfd, note_data, note_size,
@@ -110,19 +110,19 @@ Index: gdb-6.8.50.20081209/gdb/fbsd-nat.
  					  fname, psargs);
      }
  
-Index: gdb-6.8.50.20081209/gdb/linux-nat.c
+Index: gdb-6.8.50.20090803/gdb/linux-nat.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/linux-nat.c	2008-12-10 01:28:14.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/linux-nat.c	2008-12-10 01:35:25.000000000 +0100
-@@ -53,6 +53,7 @@
- #include <sys/types.h>
- #include "gdb_dirent.h"
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c	2009-08-03 17:19:56.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.c	2009-08-03 17:24:03.000000000 +0200
+@@ -55,6 +55,7 @@
  #include "xml-support.h"
+ #include "terminal.h"
+ #include <sys/vfs.h>
 +#include "gdb_procfs32.h"	/* for struct elf_prpsinfo32 */
  
- #ifdef HAVE_PERSONALITY
- # include <sys/personality.h>
-@@ -216,7 +217,7 @@ static LONGEST (*super_xfer_partial) (st
+ #ifndef SPUFS_MAGIC
+ #define SPUFS_MAGIC 0x23c9b64e
+@@ -222,7 +223,7 @@ static LONGEST (*super_xfer_partial) (st
  /* This functions make elfcore note sections.
     They may get overriden by code adjusting data for multi-target builds.  */
  char *(*linux_elfcore_write_prpsinfo)
@@ -131,8 +131,8 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
  char *(*linux_elfcore_write_prstatus)
    (bfd *, char *, int *, long, int, const void *) = elfcore_write_prstatus;
  static char *
-@@ -3614,6 +3615,159 @@ linux_nat_corefile_thread_callback (stru
-   return 0;
+@@ -3840,6 +3841,159 @@ linux_spu_make_corefile_notes (bfd *obfd
+   return args.note_data;
  }
  
 +/* Should be always true for Linux */
@@ -242,7 +242,7 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
 +
 +#if ULONG_MAX > 0xffffffffU
 +  /* We skip this code on 32-bit gdb.  */
-+  if (gdbarch_ptr_bit (current_gdbarch) == 64)
++  if (gdbarch_ptr_bit (target_gdbarch) == 64)
 +    {
 +      struct elf_prpsinfo *info = xzalloc (sizeof (*info));
 +
@@ -263,7 +263,7 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
 +      return info;
 +    }
 +#endif
-+  if (gdbarch_ptr_bit (current_gdbarch) == 32)
++  if (gdbarch_ptr_bit (target_gdbarch) == 32)
 +    {
 +      struct elf_prpsinfo32 *info = xzalloc (sizeof (*info));
 +
@@ -291,7 +291,7 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
  /* Fills the "to_make_corefile_note" target vector.  Builds the note
     section for a corefile, and returns it in a malloc buffer.  */
  
-@@ -3633,8 +3787,14 @@ linux_nat_make_corefile_notes (bfd *obfd
+@@ -3860,8 +4014,14 @@ linux_nat_make_corefile_notes (bfd *obfd
  
    if (get_exec_file (0))
      {
@@ -306,7 +306,7 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
        if (get_inferior_args ())
  	{
  	  char *string_end;
-@@ -3650,9 +3810,15 @@ linux_nat_make_corefile_notes (bfd *obfd
+@@ -3877,9 +4037,15 @@ linux_nat_make_corefile_notes (bfd *obfd
  		       psargs_end - string_end);
  	    }
  	}
@@ -324,11 +324,11 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
      }
  
    /* Dump information for threads.  */
-Index: gdb-6.8.50.20081209/gdb/linux-nat.h
+Index: gdb-6.8.50.20090803/gdb/linux-nat.h
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/linux-nat.h	2008-12-10 01:27:33.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/linux-nat.h	2008-12-10 01:35:08.000000000 +0100
-@@ -138,7 +138,7 @@ struct siginfo *linux_nat_get_siginfo (p
+--- gdb-6.8.50.20090803.orig/gdb/linux-nat.h	2009-08-03 17:19:56.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/linux-nat.h	2009-08-03 17:21:25.000000000 +0200
+@@ -148,7 +148,7 @@ struct siginfo *linux_nat_get_siginfo (p
  /* These functions make elfcore note sections.
     They may get overriden by code adjusting data for multi-target builds.  */
  extern char *(*linux_elfcore_write_prpsinfo)
@@ -337,11 +337,11 @@ Index: gdb-6.8.50.20081209/gdb/linux-nat
  extern char *(*linux_elfcore_write_prstatus)
    (bfd *, char *, int *, long, int, const void *);
  extern char *(*linux_elfcore_write_prfpreg)
-Index: gdb-6.8.50.20081209/gdb/procfs.c
+Index: gdb-6.8.50.20090803/gdb/procfs.c
 ===================================================================
---- gdb-6.8.50.20081209.orig/gdb/procfs.c	2008-11-09 12:27:17.000000000 +0100
-+++ gdb-6.8.50.20081209/gdb/procfs.c	2008-12-10 01:35:08.000000000 +0100
-@@ -6181,6 +6181,7 @@ procfs_make_note_section (bfd *obfd, int
+--- gdb-6.8.50.20090803.orig/gdb/procfs.c	2009-08-01 02:02:04.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/procfs.c	2009-08-03 17:21:25.000000000 +0200
+@@ -6147,6 +6147,7 @@ procfs_make_note_section (bfd *obfd, int
    note_data = (char *) elfcore_write_prpsinfo (obfd,
  					       note_data,
  					       note_size,

gdb-6.8-bz436037-reg-no-longer-active.patch:
 valops.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Index: gdb-6.8-bz436037-reg-no-longer-active.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-bz436037-reg-no-longer-active.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- gdb-6.8-bz436037-reg-no-longer-active.patch	1 Aug 2008 06:36:43 -0000	1.1
+++ gdb-6.8-bz436037-reg-no-longer-active.patch	4 Aug 2009 05:37:28 -0000	1.2
@@ -1,8 +1,9 @@
-diff -d -urpN src.0/gdb/valops.c src.1/gdb/valops.c
---- src.0/gdb/valops.c	2008-07-27 04:00:03.000000000 +0200
-+++ src.1/gdb/valops.c	2008-07-31 15:17:42.000000000 +0200
-@@ -813,10 +813,18 @@ value_assign (struct value *toval, struc
- 	struct frame_info *frame;
+Index: gdb-6.8.50.20090803/gdb/valops.c
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/valops.c	2009-08-04 06:30:45.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/valops.c	2009-08-04 06:33:05.000000000 +0200
+@@ -926,10 +926,18 @@ value_assign (struct value *toval, struc
+ 	struct gdbarch *gdbarch;
  	int value_reg;
  
 -	/* Figure out which frame this is in currently.  */
@@ -21,4 +22,4 @@ diff -d -urpN src.0/gdb/valops.c src.1/g
 +	/* Probably never happens.  */
  	if (!frame)
  	  error (_("Value being assigned to is no longer active."));
- 	
+ 

gdb-6.8-bz457187-largefile.patch:
 config.in    |    6 
 configure    |  365 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |    1 
 3 files changed, 372 insertions(+)

Index: gdb-6.8-bz457187-largefile.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-bz457187-largefile.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- gdb-6.8-bz457187-largefile.patch	2 Mar 2009 23:14:15 -0000	1.1
+++ gdb-6.8-bz457187-largefile.patch	4 Aug 2009 05:37:28 -0000	1.2
@@ -5,9 +5,10 @@ gdb/
 	* config.in: Regenerate.
 	* configure: Regenerate.
 
-diff -up -rup gdb-orig/configure.ac gdb/configure.ac
---- ./gdb-orig/configure.ac	2009-03-02 23:39:01.000000000 +0100
-+++ ./gdb/configure.ac	2009-03-02 23:40:46.000000000 +0100
+Index: gdb-6.8.50.20090803/gdb/configure.ac
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/configure.ac	2009-08-04 06:32:39.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/configure.ac	2009-08-04 06:33:51.000000000 +0200
 @@ -30,6 +30,7 @@ AC_GNU_SOURCE
  AC_AIX
  AC_ISC_POSIX
@@ -16,10 +17,11 @@ diff -up -rup gdb-orig/configure.ac gdb/
  AM_PROG_CC_STDC
  
  AC_CONFIG_AUX_DIR(..)
-diff -up -rup gdb-orig/config.in gdb/config.in
---- ./gdb-orig/config.in	2009-03-02 23:39:01.000000000 +0100
-+++ ./gdb/config.in	2009-03-02 23:40:53.000000000 +0100
-@@ -725,6 +725,9 @@
+Index: gdb-6.8.50.20090803/gdb/config.in
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/config.in	2009-08-04 06:32:39.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/config.in	2009-08-04 06:33:51.000000000 +0200
+@@ -744,6 +744,9 @@
  # undef _ALL_SOURCE
  #endif
  
@@ -29,7 +31,7 @@ diff -up -rup gdb-orig/config.in gdb/con
  /* Enable GNU extensions on systems that have them.  */
  #ifndef _GNU_SOURCE
  # undef _GNU_SOURCE
-@@ -734,6 +737,9 @@
+@@ -753,6 +756,9 @@
     <sys/proc.h> problem on IRIX 5. */
  #undef _KMEMUSER
  
@@ -39,18 +41,19 @@ diff -up -rup gdb-orig/config.in gdb/con
  /* Define to 1 if on MINIX. */
  #undef _MINIX
  
-diff -up -rup gdb-orig/configure gdb/configure
---- ./gdb-orig/configure	2009-03-02 23:39:01.000000000 +0100
-+++ ./gdb/configure	2009-03-02 23:40:49.000000000 +0100
-@@ -862,6 +862,7 @@ Optional Features:
+Index: gdb-6.8.50.20090803/gdb/configure
+===================================================================
+--- gdb-6.8.50.20090803.orig/gdb/configure	2009-08-04 06:32:39.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/configure	2009-08-04 06:33:51.000000000 +0200
+@@ -874,6 +874,7 @@ Optional Features:
    --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
    --enable-maintainer-mode  enable make rules and dependencies not useful
  			  (and sometimes confusing) to the casual installer
 +  --disable-largefile     omit support for large files
    --disable-dependency-tracking  speeds up one-time build
    --enable-dependency-tracking   do not reject slow dependency extractors
-   --enable-targets        alternative target configurations
-@@ -3313,6 +3314,370 @@ _ACEOF
+   --enable-targets=TARGETS
+@@ -3347,6 +3348,370 @@ _ACEOF
  
  
  

gdb-6.8-bz466901-backtrace-full-prelinked.patch:
 dwarf2loc.c                                       |    4 
 testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S |  328 ++++++++++++++++++++++
 testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c |   26 +
 testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp    |  102 ++++++
 4 files changed, 459 insertions(+), 1 deletion(-)

Index: gdb-6.8-bz466901-backtrace-full-prelinked.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-bz466901-backtrace-full-prelinked.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- gdb-6.8-bz466901-backtrace-full-prelinked.patch	11 Feb 2009 00:04:48 -0000	1.4
+++ gdb-6.8-bz466901-backtrace-full-prelinked.patch	4 Aug 2009 05:37:28 -0000	1.5
@@ -1,10 +1,10 @@
 Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
 
-Index: gdb-6.8.50.20081128/gdb/dwarf2loc.c
+Index: gdb-6.8.50.20090803/gdb/dwarf2loc.c
 ===================================================================
---- gdb-6.8.50.20081128.orig/gdb/dwarf2loc.c	2008-12-08 11:00:45.000000000 +0100
-+++ gdb-6.8.50.20081128/gdb/dwarf2loc.c	2008-12-08 18:02:49.000000000 +0100
-@@ -55,7 +55,9 @@ find_location_expression (struct dwarf2_
+--- gdb-6.8.50.20090803.orig/gdb/dwarf2loc.c	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/dwarf2loc.c	2009-08-04 06:33:35.000000000 +0200
+@@ -56,7 +56,9 @@ find_location_expression (struct dwarf2_
    CORE_ADDR low, high;
    gdb_byte *loc_ptr, *buf_end;
    int length;
@@ -13,12 +13,12 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2loc
 +  struct objfile *objfile = objfile1->separate_debug_objfile
 +			    ? objfile1->separate_debug_objfile : objfile1;
    struct gdbarch *gdbarch = get_objfile_arch (objfile);
+   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    unsigned int addr_size = dwarf2_per_cu_addr_size (baton->per_cu);
-   CORE_ADDR base_mask = ~(~(CORE_ADDR)1 << (addr_size * 8 - 1));
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp	2008-12-08 18:00:43.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp	2009-08-04 06:33:35.000000000 +0200
 @@ -0,0 +1,102 @@
 +# Copyright 2008 Free Software Foundation, Inc.
 +
@@ -122,10 +122,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +
 +# `abort' can get expressed as `*__GI_abort'.
 +gdb_test "bt full" "in \[^ \]*abort \\(.*in func \\(.*\r\n\[\t \]+i = -?\[0-9\].*in main \\(.*" "Backtrace after abort()"
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c	2008-12-08 18:00:43.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c	2009-08-04 06:33:35.000000000 +0200
 @@ -0,0 +1,26 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -153,10 +153,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite
 +  func ();
 +  return 0;
 +}
-Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S	2008-12-08 18:00:43.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S	2009-08-04 06:33:35.000000000 +0200
 @@ -0,0 +1,328 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +

gdb-6.8-constant-watchpoints.patch:
 breakpoint.c                      |   33 ++++++++++++++++++++++--
 doc/gdb.texinfo                   |   12 ++++++++
 gdbtypes.h                        |   17 +++++++++++-
 testsuite/gdb.base/watchpoint.c   |    5 +++
 testsuite/gdb.base/watchpoint.exp |   52 ++++++++++++++++++++++++++++++++++++--
 5 files changed, 114 insertions(+), 5 deletions(-)

Index: gdb-6.8-constant-watchpoints.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-constant-watchpoints.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- gdb-6.8-constant-watchpoints.patch	11 Feb 2009 00:04:48 -0000	1.5
+++ gdb-6.8-constant-watchpoints.patch	4 Aug 2009 05:37:28 -0000	1.6
@@ -18,11 +18,11 @@
 	gdb.base/watchpoint.c (global_ptr_ptr): New variable.
 	(func4): New testing code for GLOBAL_PTR_PTR.
 
-Index: gdb-6.8.50.20090209/gdb/breakpoint.c
+Index: gdb-6.8.50.20090803/gdb/breakpoint.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/breakpoint.c	2009-02-09 15:39:01.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/breakpoint.c	2009-02-09 16:04:10.000000000 +0100
-@@ -769,7 +769,15 @@ is_hardware_watchpoint (struct breakpoin
+--- gdb-6.8.50.20090803.orig/gdb/breakpoint.c	2009-08-04 06:29:47.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/breakpoint.c	2009-08-04 06:32:50.000000000 +0200
+@@ -823,7 +823,15 @@ is_hardware_watchpoint (struct breakpoin
     If VAL_CHAIN is non-NULL, *VAL_CHAIN will be released from the
     value chain.  The caller must free the values individually.  If
     VAL_CHAIN is NULL, all generated values will be left on the value
@@ -39,16 +39,16 @@ Index: gdb-6.8.50.20090209/gdb/breakpoin
  
  static void
  fetch_watchpoint_value (struct expression *exp, struct value **valp,
-@@ -5862,7 +5870,7 @@ watch_command_1 (char *arg, int accessfl
+@@ -6301,7 +6309,7 @@ watch_command_1 (char *arg, int accessfl
    struct symtab_and_line sal;
    struct expression *exp;
    struct block *exp_valid_block;
 -  struct value *val, *mark;
 +  struct value *val, *mark, *val_chain;
    struct frame_info *frame;
-   struct frame_info *prev_frame = NULL;
    char *exp_start = NULL;
-@@ -5954,6 +5962,27 @@ watch_command_1 (char *arg, int accessfl
+   char *exp_end = NULL;
+@@ -6392,6 +6400,27 @@ watch_command_1 (char *arg, int accessfl
    exp_valid_block = innermost_block;
    mark = value_mark ();
    fetch_watchpoint_value (exp, &val, NULL, NULL);
@@ -76,11 +76,11 @@ Index: gdb-6.8.50.20090209/gdb/breakpoin
    if (val != NULL)
      release_value (val);
  
-Index: gdb-6.8.50.20090209/gdb/gdbtypes.h
+Index: gdb-6.8.50.20090803/gdb/gdbtypes.h
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/gdbtypes.h	2009-02-09 15:51:57.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/gdbtypes.h	2009-02-09 16:04:10.000000000 +0100
-@@ -70,7 +70,22 @@ enum type_code
+--- gdb-6.8.50.20090803.orig/gdb/gdbtypes.h	2009-08-04 06:31:58.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/gdbtypes.h	2009-08-04 06:32:50.000000000 +0200
+@@ -71,7 +71,22 @@ enum type_code
      TYPE_CODE_UNION,		/* C union or Pascal variant part */
      TYPE_CODE_ENUM,		/* Enumeration type */
      TYPE_CODE_FLAGS,		/* Bit flags type */
@@ -104,11 +104,11 @@ Index: gdb-6.8.50.20090209/gdb/gdbtypes.
      TYPE_CODE_INT,		/* Integer type */
  
      /* Floating type.  This is *NOT* a complex type.  Beware, there are parts
-Index: gdb-6.8.50.20090209/gdb/doc/gdb.texinfo
+Index: gdb-6.8.50.20090803/gdb/doc/gdb.texinfo
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/doc/gdb.texinfo	2009-02-09 16:02:42.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo	2009-02-09 16:04:10.000000000 +0100
-@@ -3480,6 +3480,18 @@ This command prints a list of watchpoint
+--- gdb-6.8.50.20090803.orig/gdb/doc/gdb.texinfo	2009-08-04 06:32:39.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/doc/gdb.texinfo	2009-08-04 06:32:50.000000000 +0200
+@@ -3517,6 +3517,18 @@ This command prints a list of watchpoint
  it is the same as @code{info break} (@pxref{Set Breaks}).
  @end table
  
@@ -127,10 +127,10 @@ Index: gdb-6.8.50.20090209/gdb/doc/gdb.t
  @value{GDBN} sets a @dfn{hardware watchpoint} if possible.  Hardware
  watchpoints execute very quickly, and the debugger reports a change in
  value at the exact instruction where the change occurs.  If @value{GDBN}
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.base/watchpoint.c
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.base/watchpoint.c	2008-03-03 14:24:12.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.c	2009-02-09 16:04:10.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.base/watchpoint.c	2008-03-03 14:24:12.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.base/watchpoint.c	2009-08-04 06:32:50.000000000 +0200
 @@ -40,6 +40,7 @@ struct foo struct1, struct2, *ptr1, *ptr
  int doread = 0;
  
@@ -150,10 +150,10 @@ Index: gdb-6.8.50.20090209/gdb/testsuite
  }
  
  int main ()
-Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.base/watchpoint.exp
 ===================================================================
---- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.base/watchpoint.exp	2009-01-03 06:58:03.000000000 +0100
-+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.exp	2009-02-09 16:05:03.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.base/watchpoint.exp	2009-01-03 06:58:03.000000000 +0100
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.base/watchpoint.exp	2009-08-04 06:32:50.000000000 +0200
 @@ -641,7 +641,21 @@ proc test_watchpoint_and_breakpoint {} {
  	}
      }

gdb-6.8-fortran-tag-constant.patch:
 dwarf2read.c |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

Index: gdb-6.8-fortran-tag-constant.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-fortran-tag-constant.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- gdb-6.8-fortran-tag-constant.patch	10 Jun 2009 13:05:56 -0000	1.5
+++ gdb-6.8-fortran-tag-constant.patch	4 Aug 2009 05:37:28 -0000	1.6
@@ -1,8 +1,8 @@
-Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
+Index: gdb-6.8.50.20090803/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c	2009-05-09 20:04:27.000000000 +0200
-+++ gdb-6.8.50.20090302/gdb/dwarf2read.c	2009-05-09 20:04:56.000000000 +0200
-@@ -2029,6 +2029,7 @@ scan_partial_symbols (struct partial_die
+--- gdb-6.8.50.20090803.orig/gdb/dwarf2read.c	2009-08-04 06:32:58.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/dwarf2read.c	2009-08-04 06:33:18.000000000 +0200
+@@ -2459,6 +2459,7 @@ scan_partial_symbols (struct partial_die
  	      add_partial_subprogram (pdi, lowpc, highpc, need_pc, cu);
  	      break;
  	    case DW_TAG_variable:
@@ -10,7 +10,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
  	    case DW_TAG_typedef:
  	    case DW_TAG_union_type:
  	      if (!pdi->is_declaration)
-@@ -2244,6 +2245,7 @@ add_partial_symbol (struct partial_die_i
+@@ -2654,6 +2655,7 @@ add_partial_symbol (struct partial_die_i
  	}
        break;
      case DW_TAG_variable:
@@ -18,7 +18,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
        if (pdi->is_external)
  	{
  	  /* Global Variable.
-@@ -4272,7 +4274,8 @@ dwarf2_add_field (struct field_info *fip
+@@ -4790,7 +4792,8 @@ dwarf2_add_field (struct field_info *fip
  	  fip->non_public_fields = 1;
  	}
      }
@@ -28,7 +28,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
      {
        /* C++ static member.  */
  
-@@ -4762,7 +4765,8 @@ read_structure_type (struct die_info *di
+@@ -5297,7 +5300,8 @@ read_structure_type (struct die_info *di
        while (child_die && child_die->tag)
  	{
  	  if (child_die->tag == DW_TAG_member
@@ -38,7 +38,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
  	    {
  	      /* NOTE: carlton/2002-11-05: A C++ static data member
  		 should be a DW_TAG_member that is a declaration, but
-@@ -4881,6 +4885,7 @@ process_structure_scope (struct die_info
+@@ -5416,6 +5420,7 @@ process_structure_scope (struct die_info
      {
        if (child_die->tag == DW_TAG_member
  	  || child_die->tag == DW_TAG_variable
@@ -46,15 +46,15 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
  	  || child_die->tag == DW_TAG_inheritance)
  	{
  	  /* Do nothing.  */
-@@ -6656,6 +6661,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
+@@ -6926,6 +6931,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
  	  && abbrev->tag != DW_TAG_subprogram
  	  && abbrev->tag != DW_TAG_lexical_block
  	  && abbrev->tag != DW_TAG_variable
 +	  && abbrev->tag != DW_TAG_constant
  	  && abbrev->tag != DW_TAG_namespace
- 	  && abbrev->tag != DW_TAG_module
  	  && abbrev->tag != DW_TAG_member)
-@@ -6764,6 +6770,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
+ 	{
+@@ -7033,6 +7039,7 @@ load_partial_dies (bfd *abfd, gdb_byte *
        if (load_all
  	  || abbrev->tag == DW_TAG_subprogram
  	  || abbrev->tag == DW_TAG_variable
@@ -62,7 +62,7 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
  	  || abbrev->tag == DW_TAG_namespace
  	  || part_die->is_declaration)
  	{
-@@ -8549,6 +8556,11 @@ new_symbol (struct die_info *die, struct
+@@ -8840,6 +8847,11 @@ new_symbol (struct die_info *die, struct
  	  /* Do not add the symbol to any lists.  It will be found via
  	     BLOCK_FUNCTION from the blockvector.  */
  	  break;

gdb-6.8-inlining-addon.patch:
 breakpoint.c                        |   35 +++++++++++++---
 dwarf2read.c                        |    6 ++
 frame.c                             |    8 ++-
 gdbthread.h                         |    6 ++
 infcmd.c                            |   76 ++++++++++++++++++++++++++----------
 inline-frame.c                      |   34 +++++++++++++---
 inline-frame.h                      |    4 +
 target.c                            |    1 
 testsuite/gdb.opt/inline-bt.c       |   10 +++-
 testsuite/gdb.opt/inline-cmds.c     |   10 +++-
 testsuite/gdb.opt/inline-cmds.exp   |   28 ++++++-------
 testsuite/gdb.opt/inline-locals.c   |    9 +++-
 testsuite/gdb.opt/inline-locals.exp |    6 ++
 testsuite/gdb.opt/inline-markers.c  |    5 --
 14 files changed, 176 insertions(+), 62 deletions(-)

Index: gdb-6.8-inlining-addon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.8-inlining-addon.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- gdb-6.8-inlining-addon.patch	27 Mar 2009 08:52:15 -0000	1.6
+++ gdb-6.8-inlining-addon.patch	4 Aug 2009 05:37:28 -0000	1.7
@@ -5,10 +5,10 @@ causing: FAIL: gdb.base/unwindonsignal.e
 resume() -> target_resume() move of clear_inline_frame_state() is for:
 gdb.mi/mi-nsmoribund.exp
 
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-bt.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-bt.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.c	2009-03-25 22:34:02.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-bt.c	2009-06-28 02:20:24.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-bt.c	2009-08-03 16:57:40.000000000 +0200
 @@ -13,10 +13,16 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
@@ -28,42 +28,10 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
  
  inline int func1(void)
  {
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-bt.exp	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-bt.exp	2009-03-25 22:34:02.000000000 +0100
-@@ -41,18 +41,19 @@ if { [skip_inline_frame_tests] } {
-     return
- }
- 
--set line1 [gdb_get_line_number "set breakpoint 1 here" ${fullsrcfile2}]
--gdb_breakpoint $srcfile2:$line1
-+set line1 [gdb_get_line_number "set breakpoint 1 here" ${srcfile}]
-+gdb_breakpoint $srcfile:$line1
- 
- gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (1)"
- gdb_test "backtrace" "#0  bar.*#1  .*main.*" "backtrace from bar (1)"
--gdb_test "info frame" ".*called by frame.*" "bar not inlined"
-+gdb_test "info frame" ".*inlined into frame.*" "bar inlined"
- 
--gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (2)"
--gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*main.*" \
--    "backtrace from bar (2)"
--gdb_test "up" "#1  .*func1.*" "up from bar (2)"
--gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (2)"
-+# gcc-4.3.1 omits the line number information for (2).
-+#gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (2)"
-+#gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*main.*" \
-+#    "backtrace from bar (2)"
-+#gdb_test "up" "#1  .*func1.*" "up from bar (2)"
-+#gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (2)"
- 
- gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (3)"
- gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*func2.*#3  .*main.*" \
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.c
-===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-cmds.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.c	2009-03-25 22:34:02.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-cmds.c	2009-06-28 02:20:24.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.c	2009-08-03 16:57:40.000000000 +0200
 @@ -13,13 +13,19 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
@@ -86,49 +54,11 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
  inline int func1(void)
  {
    bar ();
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.exp
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-cmds.exp	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-cmds.exp	2009-03-25 22:34:02.000000000 +0100
-@@ -45,28 +45,28 @@ if { [skip_inline_frame_tests] } {
- 
- # First, check that the things we expected to be inlined really were,
- # and those that shouldn't be weren't.
--set line1 [gdb_get_line_number "set breakpoint 1 here" ${fullsrcfile2}]
-+set line1 [gdb_get_line_number "set breakpoint 1 here" ${srcfile2}]
- gdb_breakpoint $srcfile2:$line1
--set line2 [gdb_get_line_number "set breakpoint 2 here" ${fullsrcfile2}]
-+set line2 [gdb_get_line_number "set breakpoint 2 here" ${srcfile2}]
- gdb_breakpoint $srcfile2:$line2
- 
--gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (1)"
-+gdb_test "continue" "set breakpoint 1 here.*" "continue to bar (1)"
- gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*main.*" \
-     "backtrace from bar (1)"
- gdb_test "up" "#1  .*func1.*" "up from bar (1)"
--gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (1)"
-+gdb_test "info frame" "inlined into frame.*" "func1 inlined (1)"
- 
--gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (2)"
-+gdb_test "continue" "set breakpoint 1 here.*" "continue to bar (2)"
- gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*func2.*#3  .*main.*" \
-     "backtrace from bar (2)"
- gdb_test "up" "#1  .*func1.*" "up from bar (2)"
--gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (2)"
-+gdb_test "info frame" "inlined into frame.*" "func1 inlined (2)"
- gdb_test "up" "#2  .*func2.*" "up from func1 (2)"
--gdb_test "info frame" ".*inlined into frame.*" "func2 inlined (2)"
-+gdb_test "info frame" "inlined into frame.*" "func2 inlined (2)"
- 
--gdb_test "continue" ".*set breakpoint 2 here.*" "continue to marker"
-+gdb_test "continue" "set breakpoint 2 here.*" "continue to marker"
- gdb_test "backtrace" "#0  marker.*#1  .*main.*" "backtrace from marker"
--gdb_test "info frame" ".*called by frame.*" "marker not inlined"
-+gdb_test "info frame" "\n called by frame.*" "marker not inlined"
- 
- # Next, check that we can next over inlined functions.  We should not end up
- # inside any of them.
-@@ -201,7 +201,7 @@ set line3 [gdb_get_line_number "set brea
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-cmds.exp	2009-06-28 02:20:24.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.exp	2009-08-03 16:57:40.000000000 +0200
+@@ -230,7 +230,7 @@ set line3 [gdb_get_line_number "set brea
  gdb_breakpoint $line3
  gdb_continue_to_breakpoint "consecutive func1"
  
@@ -137,7 +67,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
  set msg "next to second func1"
  gdb_test_multiple "next" $msg {
      -re ".*func1 .*second call.*$gdb_prompt $" {
-@@ -224,16 +224,16 @@ set line4 [gdb_get_line_number "set brea
+@@ -253,16 +253,16 @@ set line4 [gdb_get_line_number "set brea
  gdb_breakpoint $line4
  gdb_continue_to_breakpoint "func1 then func3"
  
@@ -158,7 +88,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
  gdb_test "finish" "func1 \\\(\\\);" "finish from marker to func1"
  
  gdb_test "step" "bar \\\(\\\);" "step into func1 for finish"
-@@ -268,12 +268,12 @@ gdb_test "step" "noinline \\\(\\\) at .*
+@@ -297,12 +297,12 @@ gdb_test "step" "noinline \\\(\\\) at .*
  gdb_test "bt" "#0  noinline.*#1  .*outer_inline1.*#2  .*outer_inline2.*#3  main.*" "backtrace at noinline from outer_inline1"
  gdb_test "step" "inlined_fn \\\(\\\) at .*" "enter inlined_fn from noinline"
  gdb_test "bt" "#0  inlined_fn.*#1  noinline.*#2  .*outer_inline1.*#3  .*outer_inline2.*#4  main.*" "backtrace at inlined_fn from noinline"
@@ -180,10 +110,10 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
 +gdb_test "info frame" "inlined into frame.*" "outer_inline2 inlined"
 +gdb_test "fini" "" "up from outer_inline2"
 +gdb_test "info frame" " in main \[^\n\]*\n source language.*" "main not inlined"
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-locals.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.c	2009-03-25 22:34:02.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-locals.c	2009-06-28 02:20:24.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.c	2009-08-03 16:57:40.000000000 +0200
 @@ -13,11 +13,16 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
@@ -203,21 +133,10 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
  
  inline int func1(int arg1)
  {
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.exp
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.exp
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-locals.exp	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-locals.exp	2009-03-25 22:34:02.000000000 +0100
-@@ -43,8 +43,8 @@ if { [skip_inline_var_tests] } {
- 
- set no_frames [skip_inline_frame_tests]
- 
--set line1 [gdb_get_line_number "set breakpoint 1 here" ${fullsrcfile2}]
--gdb_breakpoint $srcfile2:$line1
-+set line1 [gdb_get_line_number "set breakpoint 1 here" ${srcfile}]
-+gdb_breakpoint $srcfile:$line1
- 
- gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (1)"
- 
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-locals.exp	2009-06-30 17:50:27.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.exp	2009-08-03 16:57:40.000000000 +0200
 @@ -77,6 +77,9 @@ if { ! $no_frames } {
  
  # Make sure that locals on the stack are found.  This is an array to
@@ -236,11 +155,11 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
 +    setup_kfail *-*-* "gcc/debug.optimization"
 +}
  gdb_test "print array\[0\]" "\\\$$decimal = 184" "print local (3)"
-Index: gdb-6.8.50.20090302/gdb/frame.c
+Index: gdb-6.8.50.20090803/gdb/frame.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/frame.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/frame.c	2009-03-25 22:34:02.000000000 +0100
-@@ -269,7 +269,7 @@ fprint_frame (struct ui_file *file, stru
+--- gdb-6.8.50.20090803.orig/gdb/frame.c	2009-08-03 15:56:08.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/frame.c	2009-08-03 16:57:40.000000000 +0200
+@@ -276,7 +276,7 @@ fprint_frame (struct ui_file *file, stru
  static struct frame_info *
  skip_inlined_frames (struct frame_info *frame)
  {
@@ -249,7 +168,7 @@ Index: gdb-6.8.50.20090302/gdb/frame.c
      frame = get_prev_frame (frame);
  
    return frame;
-@@ -1670,6 +1670,7 @@ get_frame_address_in_block (struct frame
+@@ -1715,6 +1715,7 @@ get_frame_address_in_block (struct frame
  {
    /* A draft address.  */
    CORE_ADDR pc = get_frame_pc (this_frame);
@@ -257,7 +176,7 @@ Index: gdb-6.8.50.20090302/gdb/frame.c
  
    struct frame_info *next_frame = this_frame->next;
  
-@@ -1712,6 +1713,9 @@ get_frame_address_in_block (struct frame
+@@ -1757,6 +1758,9 @@ get_frame_address_in_block (struct frame
       while in an inlined function, then the code address of the
       "calling" normal function should not be adjusted either.  */
  
@@ -267,7 +186,7 @@ Index: gdb-6.8.50.20090302/gdb/frame.c
    while (get_frame_type (next_frame) == INLINE_FRAME)
      next_frame = next_frame->next;
  
-@@ -1743,7 +1747,7 @@ find_frame_sal (struct frame_info *frame
+@@ -1788,7 +1792,7 @@ find_frame_sal (struct frame_info *frame
  	sym = inline_skipped_symbol (inferior_ptid);
  
        init_sal (sal);
@@ -276,19 +195,19 @@ Index: gdb-6.8.50.20090302/gdb/frame.c
  	{
  	  sal->symtab = SYMBOL_SYMTAB (sym);
  	  sal->line = SYMBOL_LINE (sym);
-Index: gdb-6.8.50.20090302/gdb/breakpoint.c
+Index: gdb-6.8.50.20090803/gdb/breakpoint.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/breakpoint.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/breakpoint.c	2009-03-25 22:34:02.000000000 +0100
-@@ -57,6 +57,7 @@
- #include "top.h"
+--- gdb-6.8.50.20090803.orig/gdb/breakpoint.c	2009-08-03 16:56:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/breakpoint.c	2009-08-03 17:19:24.000000000 +0200
+@@ -60,6 +60,7 @@
  #include "wrapper.h"
  #include "valprint.h"
+ #include "parser-defs.h"
 +#include "inline-frame.h"
  
- #include "mi/mi-common.h"
- 
-@@ -2902,10 +2903,24 @@ bpstat_check_breakpoint_conditions (bpst
+ /* readline include files */
+ #include "readline/readline.h"
+@@ -3065,10 +3066,24 @@ bpstat_check_breakpoint_conditions (bpst
    const struct bp_location *bl = bs->breakpoint_at;
    struct breakpoint *b = bl->owner;
  
@@ -317,7 +236,7 @@ Index: gdb-6.8.50.20090302/gdb/breakpoin
      {
        int value_is_zero = 0;
        
-@@ -3044,6 +3059,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -3215,6 +3230,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  	    bs->print = 0;
  	  }
  	bs->commands = copy_command_lines (bs->commands);
@@ -330,7 +249,7 @@ Index: gdb-6.8.50.20090302/gdb/breakpoin
        }
  
      /* Print nothing for this entry if we dont stop or if we dont print.  */
-@@ -5169,9 +5190,9 @@ set_momentary_breakpoint (struct symtab_
+@@ -5164,9 +5185,9 @@ set_momentary_breakpoint (struct gdbarch
  {
    struct breakpoint *b;
  
@@ -341,13 +260,13 @@ Index: gdb-6.8.50.20090302/gdb/breakpoin
 +     shortcut the case of returning _from_ an inline frame we still may be
 +     returning from non-inlined frame _to_ an inlined frame.  */
  
-   b = set_raw_breakpoint (sal, type);
+   b = set_raw_breakpoint (gdbarch, sal, type);
    b->enable_state = bp_enabled;
-Index: gdb-6.8.50.20090302/gdb/inline-frame.c
+Index: gdb-6.8.50.20090803/gdb/inline-frame.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/inline-frame.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/inline-frame.c	2009-03-25 22:34:02.000000000 +0100
-@@ -183,6 +183,12 @@ inline_frame_sniffer (const struct frame
+--- gdb-6.8.50.20090803.orig/gdb/inline-frame.c	2009-06-28 02:20:22.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/inline-frame.c	2009-08-03 16:57:40.000000000 +0200
+@@ -195,6 +195,12 @@ inline_frame_sniffer (const struct frame
    if (frame_block == NULL)
      return 0;
  
@@ -360,7 +279,7 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
    /* Calculate DEPTH, the number of inlined functions at this
       location.  */
    depth = 0;
-@@ -192,6 +198,10 @@ inline_frame_sniffer (const struct frame
+@@ -204,6 +210,10 @@ inline_frame_sniffer (const struct frame
        if (block_inlined_p (cur_block))
  	depth++;
  
@@ -371,7 +290,7 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
        cur_block = BLOCK_SUPERBLOCK (cur_block);
      }
  
-@@ -275,7 +285,6 @@ skip_inline_frames (ptid_t ptid)
+@@ -287,7 +297,6 @@ skip_inline_frames (ptid_t ptid)
  {
    CORE_ADDR this_pc;
    struct block *frame_block, *cur_block;
@@ -379,7 +298,7 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
    int skip_count = 0;
    struct inline_state *state;
  
-@@ -296,10 +305,7 @@ skip_inline_frames (ptid_t ptid)
+@@ -308,10 +317,7 @@ skip_inline_frames (ptid_t ptid)
  		 of BLOCK_START.  */
  	      if (BLOCK_START (cur_block) == this_pc
  		  || block_starting_point_at (this_pc, cur_block))
@@ -391,7 +310,7 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
  	      else
  		break;
  	    }
-@@ -311,7 +317,6 @@ skip_inline_frames (ptid_t ptid)
+@@ -323,7 +329,6 @@ skip_inline_frames (ptid_t ptid)
    state = allocate_inline_frame_state (ptid);
    state->skipped_frames = skip_count;
    state->saved_pc = this_pc;
@@ -399,7 +318,7 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
  
    if (skip_count != 0)
      reinit_frame_cache ();
-@@ -329,6 +334,23 @@ step_into_inline_frame (ptid_t ptid)
+@@ -341,6 +346,23 @@ step_into_inline_frame (ptid_t ptid)
    reinit_frame_cache ();
  }
  
@@ -423,10 +342,10 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
  /* Return the number of hidden functions inlined into the current
     frame.  */
  
-Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-markers.c
+Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-markers.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/testsuite/gdb.opt/inline-markers.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.opt/inline-markers.c	2009-03-25 22:34:02.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-markers.c	2009-06-28 02:20:24.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-markers.c	2009-08-03 16:57:40.000000000 +0200
 @@ -15,11 +15,6 @@
  
  extern int x, y;
@@ -439,11 +358,11 @@ Index: gdb-6.8.50.20090302/gdb/testsuite
  void marker(void)
  {
    x += y; /* set breakpoint 2 here */
-Index: gdb-6.8.50.20090302/gdb/gdbthread.h
+Index: gdb-6.8.50.20090803/gdb/gdbthread.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/gdbthread.h	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/gdbthread.h	2009-03-25 22:34:02.000000000 +0100
-@@ -180,6 +180,12 @@ struct thread_info
+--- gdb-6.8.50.20090803.orig/gdb/gdbthread.h	2009-08-03 15:55:53.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/gdbthread.h	2009-08-03 16:57:40.000000000 +0200
+@@ -187,6 +187,12 @@ struct thread_info
  
    /* Private data used by the target vector implementation.  */
    struct private_thread_info *private;
@@ -456,11 +375,11 @@ Index: gdb-6.8.50.20090302/gdb/gdbthread
  };
  
  /* Create an empty thread list, or empty the existing one.  */
-Index: gdb-6.8.50.20090302/gdb/infcmd.c
+Index: gdb-6.8.50.20090803/gdb/infcmd.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/infcmd.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/infcmd.c	2009-03-25 22:34:02.000000000 +0100
-@@ -1391,11 +1391,11 @@ finish_command_continuation (void *arg)
+--- gdb-6.8.50.20090803.orig/gdb/infcmd.c	2009-07-02 23:57:27.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/infcmd.c	2009-08-03 17:17:24.000000000 +0200
+@@ -1408,11 +1408,11 @@ finish_command_continuation (void *arg)
        struct type *value_type;
  
        value_type = TYPE_TARGET_TYPE (SYMBOL_TYPE (a->function));
@@ -474,7 +393,7 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
  	print_return_value (SYMBOL_TYPE (a->function), value_type);
      }
  
-@@ -1499,6 +1499,16 @@ finish_forward (struct symbol *function,
+@@ -1514,6 +1514,16 @@ finish_forward (struct symbol *function,
  
    old_chain = make_cleanup_delete_breakpoint (breakpoint);
  
@@ -489,9 +408,9 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
 +    tp->current_pc_is_notcurrent = 1;
 +
    tp->proceed_to_finish = 1;    /* We want stop_registers, please...  */
-   make_cleanup_restore_integer (&suppress_stop_observer);
-   suppress_stop_observer = 1;
-@@ -1522,7 +1532,9 @@ finish_forward (struct symbol *function,
+   proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 0);
+ 
+@@ -1535,7 +1545,9 @@ finish_forward (struct symbol *function,
  static void
  finish_command (char *arg, int from_tty)
  {
@@ -502,7 +421,7 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
    struct symbol *function;
  
    int async_exec = 0;
-@@ -1553,46 +1565,63 @@ finish_command (char *arg, int from_tty)
+@@ -1566,45 +1578,63 @@ finish_command (char *arg, int from_tty)
    if (!target_has_execution)
      error (_("The program is not running."));
  
@@ -523,16 +442,15 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
 -      == INLINE_FRAME)
 +  if (get_frame_type (current_frame) == INLINE_FRAME)
      {
-       struct thread_info *tp = inferior_thread ();
--
 -      /* Claim we are stepping in the calling frame.  An empty step
 -	 range means that we will stop once we aren't in a function
 -	 called by that frame.  We don't use the magic "1" value for
 -	 step_range_end, because then infrun will think this is nexti,
 -	 and not step over the rest of this inlined function call.  */
+       struct thread_info *tp = inferior_thread ();
        struct symtab_and_line empty_sal;
 -      init_sal (&empty_sal);
--      set_step_info (tp, frame, empty_sal);
+-      set_step_info (frame, empty_sal);
 -      tp->step_range_start = tp->step_range_end = get_frame_pc (frame);
 -      tp->step_over_calls = STEP_OVER_ALL;
 +      struct block *frame_block;
@@ -544,8 +462,8 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
  	  printf_filtered (_("Run till exit from "));
 -	  print_stack_frame (get_selected_frame (NULL), 1, LOCATION);
 +	  print_stack_frame (current_frame, 1, LOCATION);
- 	}
- 
++	}
++
 +      /* Even just a single stepi would get us out of the caller function PC
 +	 range.  */
 +
@@ -561,15 +479,15 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
 +	  tp->current_pc_is_notcurrent = 1;
 +	  normal_stop ();
 +	  return;
-+	}
-+
+ 	}
+ 
 +      /* Claim we are stepping in the calling frame.  An empty step
 +	 range means that we will stop once we aren't in a function
 +	 called by that frame.  We don't use the magic "1" value for
 +	 step_range_end, because then infrun will think this is nexti,
 +	 and not step over the rest of this inlined function call.  */
 +      init_sal (&empty_sal);
-+      set_step_info (tp, prev_frame, empty_sal);
++      set_step_info (prev_frame, empty_sal);
 +      tp->step_range_start = tp->step_range_end = get_frame_pc (prev_frame);
 +      tp->step_over_calls = STEP_OVER_ALL;
 +
@@ -584,7 +502,7 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
  
    /* Print info on the selected frame, including level number but not
       source.  */
-@@ -1606,10 +1635,14 @@ finish_command (char *arg, int from_tty)
+@@ -1618,10 +1648,14 @@ finish_command (char *arg, int from_tty)
        print_stack_frame (get_selected_frame (NULL), 1, LOCATION);
      }
  
@@ -600,41 +518,11 @@ Index: gdb-6.8.50.20090302/gdb/infcmd.c
  }
  
  
-Index: gdb-6.8.50.20090302/gdb/infrun.c
+Index: gdb-6.8.50.20090803/gdb/target.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/infrun.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/infrun.c	2009-03-25 22:34:02.000000000 +0100
-@@ -1152,8 +1152,6 @@ a command like `return' or `jump' to con
- 	    step = 0;
- 	}
- 
--      clear_inline_frame_state (resume_ptid);
--
-       if (debug_displaced
-           && use_displaced_stepping (gdbarch)
-           && tp->trap_expected)
-@@ -1205,6 +1203,8 @@ clear_proceed_status_thread (struct thre
- 
-   /* Discard any remaining commands or status from previous stop.  */
-   bpstat_clear (&tp->stop_bpstat);
-+
-+  tp->current_pc_is_notcurrent = 0;
- }
- 
- static int
-Index: gdb-6.8.50.20090302/gdb/target.c
-===================================================================
---- gdb-6.8.50.20090302.orig/gdb/target.c	2009-03-25 22:26:51.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/target.c	2009-03-25 22:34:02.000000000 +0100
-@@ -41,6 +41,7 @@
- #include "target-descriptions.h"
- #include "gdbthread.h"
- #include "solib.h"
-+#include "inline-frame.h"
- 
- static void target_info (char *, int);
- 
-@@ -1925,6 +1926,7 @@ target_resume (ptid_t ptid, int step, en
+--- gdb-6.8.50.20090803.orig/gdb/target.c	2009-08-03 16:04:15.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/target.c	2009-08-03 16:57:40.000000000 +0200
+@@ -2079,6 +2079,7 @@ target_resume (ptid_t ptid, int step, en
  {
    struct target_ops *t;
  
@@ -642,10 +530,10 @@ Index: gdb-6.8.50.20090302/gdb/target.c
    dcache_invalidate (target_dcache);
  
    for (t = current_target.beneath; t != NULL; t = t->beneath)
-Index: gdb-6.8.50.20090302/gdb/inline-frame.h
+Index: gdb-6.8.50.20090803/gdb/inline-frame.h
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/inline-frame.h	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/inline-frame.h	2009-03-25 22:34:02.000000000 +0100
+--- gdb-6.8.50.20090803.orig/gdb/inline-frame.h	2009-06-28 02:20:22.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/inline-frame.h	2009-08-03 16:57:40.000000000 +0200
 @@ -43,6 +43,10 @@ void clear_inline_frame_state (ptid_t pt
  
  void step_into_inline_frame (ptid_t ptid);
@@ -657,41 +545,19 @@ Index: gdb-6.8.50.20090302/gdb/inline-fr
  /* Return the number of hidden functions inlined into the current
     frame.  */
  
-Index: gdb-6.8.50.20090302/gdb/infcall.c
+Index: gdb-6.8.50.20090803/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.8.50.20090302.orig/gdb/infcall.c	2009-03-25 22:33:02.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/infcall.c	2009-03-25 22:34:02.000000000 +0100
-@@ -898,8 +898,15 @@ The program being debugged exited while 
- 
- 	  if (unwind_on_signal_p)
- 	    {
--	      /* The user wants the context restored.  Calling error will
--	         run inf_status_cleanup, which does all the work.  */
-+	      /* The user wants the context restored. */
-+
-+	      /* We must get back to the frame we were before the
-+		 dummy call.  */
-+	      dummy_frame_pop (dummy_id);
-+
-+	      /* We also need to restore inferior status to that before the
-+		 dummy call.  */
-+	      restore_inferior_status (inf_status);
- 
- 	      /* FIXME: Insert a bunch of wrap_here; name can be very
- 		 long if it's a C++ name with arguments and stuff.  */
-Index: gdb-6.8.50.20090302/gdb/dwarf2read.c
-===================================================================
---- gdb-6.8.50.20090302.orig/gdb/dwarf2read.c	2009-03-25 22:33:44.000000000 +0100
-+++ gdb-6.8.50.20090302/gdb/dwarf2read.c	2009-03-25 22:34:11.000000000 +0100
-@@ -3471,6 +3471,7 @@ read_func_scope (struct die_info *die, s
-   unsigned die_children;
-   struct attribute *call_line, *call_file;
+--- gdb-6.8.50.20090803.orig/gdb/dwarf2read.c	2009-08-03 16:56:10.000000000 +0200
++++ gdb-6.8.50.20090803/gdb/dwarf2read.c	2009-08-03 16:57:40.000000000 +0200
+@@ -4107,6 +4107,7 @@ read_func_scope (struct die_info *die, s
+   struct block *block;
+   unsigned die_children = 0;
    int inlined_func = (die->tag == DW_TAG_inlined_subroutine);
 +  struct type *type;
  
    if (inlined_func)
      {
-@@ -3513,7 +3514,10 @@ read_func_scope (struct die_info *die, s
+@@ -4148,7 +4149,10 @@ read_func_scope (struct die_info *die, s
    add_to_cu_func_list (name, lowpc, highpc, cu);
  
    new = push_context (0, lowpc);
@@ -703,11 +569,3 @@ Index: gdb-6.8.50.20090302/gdb/dwarf2rea
  
    /* If there is a location expression for DW_AT_frame_base, record
       it.  */
-@@ -8751,6 +8755,7 @@ read_type_die (struct die_info *die, str
-       break;
-     case DW_TAG_subprogram:
-     case DW_TAG_subroutine_type:
-+    case DW_TAG_inlined_subroutine:
-       this_type = read_subroutine_type (die, cu);
-       break;
-     case DW_TAG_array_type:

gdb-archer.patch:
 Makefile.in                                              |   95 
 NEWS                                                     |    7 
 ada-lang.c                                               |   43 
 block.c                                                  |   23 
 block.h                                                  |    2 
 breakpoint.c                                             |  102 
 breakpoint.h                                             |    3 
 c-exp.y                                                  |  252 ++
 c-lang.c                                                 |    6 
 c-typeprint.c                                            |   47 
 cli/cli-cmds.c                                           |   72 
 coffread.c                                               |    3 
 config.in                                                |    8 
 config/i386/nm-i386.h                                    |  125 +
 config/i386/nm-linux64.h                                 |   54 
 config/mips/nm-irix5.h                                   |   44 
 configure                                                |   79 
 configure.ac                                             |   47 
 cp-name-parser.y                                         |    5 
 cp-namespace.c                                           |  199 +
 cp-support.c                                             |   88 
 cp-support.h                                             |   54 
 dbxread.c                                                |    1 
 doc/gdb.texinfo                                          |  471 ++++
 doc/gdbint.texinfo                                       |   62 
 doc/observer.texi                                        |   14 
 dwarf2-frame.c                                           |   28 
 dwarf2-frame.h                                           |    4 
 dwarf2expr.c                                             |   86 
 dwarf2expr.h                                             |   68 
 dwarf2loc.c                                              |  356 ++-
 dwarf2loc.h                                              |    6 
 dwarf2read.c                                             | 1621 ++++++++++-----
 elfread.c                                                |   11 
 eval.c                                                   |  170 +
 expression.h                                             |   11 
 f-exp.y                                                  |    4 
 f-lang.c                                                 |  413 ---
 f-lang.h                                                 |   38 
 f-typeprint.c                                            |   36 
 f-valprint.c                                             |  267 --
 findcmd.c                                                |  111 -
 findvar.c                                                |  126 -
 frame.c                                                  |   19 
 frame.h                                                  |    5 
 gdbinit.in                                               |   10 
 gdbserver/linux-i386-low.c                               |  210 +
 gdbserver/linux-x86-64-low.c                             |  184 +
 gdbthread.h                                              |    3 
 gdbtypes.c                                               |  598 ++++-
 gdbtypes.h                                               |  140 +
 gnu-v3-abi.c                                             |   18 
 gnulib/Makefile.in                                       |    4 
 jv-lang.c                                                |    1 
 language.h                                               |    1 
 linespec.c                                               |   62 
 m2-lang.c                                                |    1 
 machoread.c                                              |    1 
 main.c                                                   |   80 
 maint.c                                                  |    8 
 mdebugread.c                                             |    2 
 mi/mi-cmd-var.c                                          |   74 
 mi/mi-cmds.c                                             |    1 
 mi/mi-cmds.h                                             |    1 
 mi/mi-main.c                                             |    5 
 mipsread.c                                               |    1 
 objfiles.c                                               |   40 
 objfiles.h                                               |   23 
 parse.c                                                  |  154 +
 parser-defs.h                                            |   25 
 printcmd.c                                               |   90 
 python/lib/gdb/FrameIterator.py                          |   33 
 python/lib/gdb/FrameWrapper.py                           |  112 +
 python/lib/gdb/__init__.py                               |   19 
 python/lib/gdb/backtrace.py                              |   42 
 python/lib/gdb/command/__init__.py                       |    1 
 python/lib/gdb/command/alias.py                          |   59 
 python/lib/gdb/command/backtrace.py                      |  106 
 python/lib/gdb/command/ignore_errors.py                  |   37 
 python/lib/gdb/command/pahole.py                         |   75 
 python/lib/gdb/command/require.py                        |   57 
 python/lib/gdb/command/save_breakpoints.py               |   65 
 python/lib/gdb/command/upto.py                           |  129 +
 python/lib/gdb/function/__init__.py                      |    1 
 python/lib/gdb/function/caller_is.py                     |   58 
 python/lib/gdb/function/in_scope.py                      |   47 
 python/python-block.c                                    |  265 ++
 python/python-breakpoint.c                               |  665 ++++++
 python/python-cmd.c                                      |   17 
 python/python-frame.c                                    |  116 +
 python/python-hooks.c                                    |   50 
 python/python-inferior.c                                 |  926 ++++++++
 python/python-infthread.c                                |  285 ++
 python/python-internal.h                                 |   69 
 python/python-membuf.c                                   |  268 ++
 python/python-param.c                                    |  606 +++++
 python/python-prettyprint.c                              |   21 
 python/python-symbol.c                                   |  336 +++
 python/python-symtab.c                                   |  322 ++
 python/python-type.c                                     |  170 +
 python/python-utils.c                                    |   46 
 python/python-value.c                                    |  101 
 python/python.c                                          |  523 ++++
 python/python.h                                          |    6 
 scm-lang.c                                               |    1 
 scm-valprint.c                                           |    4 
 solib-darwin.c                                           |    1 
 solib-spu.c                                              |    7 
 solib-svr4.c                                             |    4 
 solib.c                                                  |    3 
 solist.h                                                 |    2 
 somread.c                                                |    1 
 spu-tdep.c                                               |    2 
 stabsread.c                                              |    4 
 stack.c                                                  |   38 
 symfile.c                                                |   51 
 symfile.h                                                |   12 
 symmisc.c                                                |    4 
 symtab.c                                                 |  314 +-
 symtab.h                                                 |   17 
 target.h                                                 |   22 
 testsuite/ChangeLog                                      |   97 
 testsuite/gdb.arch/powerpc-power7.exp                    |  175 +
 testsuite/gdb.arch/powerpc-power7.s                      |  107 
 testsuite/gdb.arch/x86_64-vla-typedef-foo.S              |  455 ++++
 testsuite/gdb.arch/x86_64-vla-typedef.c                  |   43 
 testsuite/gdb.arch/x86_64-vla-typedef.exp                |   64 
 testsuite/gdb.base/arrayidx.c                            |    7 
 testsuite/gdb.base/arrayidx.exp                          |   10 
 testsuite/gdb.base/help.exp                              |    2 
 testsuite/gdb.base/lineno-makeup-func.c                  |   21 
 testsuite/gdb.base/lineno-makeup.c                       |   35 
 testsuite/gdb.base/lineno-makeup.exp                     |   78 
 testsuite/gdb.base/macscp.exp                            |    8 
 testsuite/gdb.base/radix.exp                             |    7 
 testsuite/gdb.base/valgrind-attach.c                     |   28 
 testsuite/gdb.base/valgrind-attach.exp                   |   94 
 testsuite/gdb.base/valgrind-attach.sh                    |   20 
 testsuite/gdb.base/vla-overflow.c                        |   30 
 testsuite/gdb.base/vla-overflow.exp                      |  108 
 testsuite/gdb.base/vla.c                                 |   55 
 testsuite/gdb.base/vla.exp                               |   62 
 testsuite/gdb.cp/cp-relocate.exp                         |    6 
 testsuite/gdb.cp/cplusfuncs.cc                           |    6 
 testsuite/gdb.cp/cplusfuncs.exp                          |  195 +
 testsuite/gdb.cp/expand-sals.exp                         |    2 
 testsuite/gdb.cp/member-ptr.cc                           |   17 
 testsuite/gdb.cp/member-ptr.exp                          |   34 
 testsuite/gdb.cp/namespace-multiple-imports.cc           |   20 
 testsuite/gdb.cp/namespace-multiple-imports.exp          |   49 
 testsuite/gdb.cp/namespace-nested-imports.cc             |   36 
 testsuite/gdb.cp/namespace-nested-imports.exp            |   57 
 testsuite/gdb.cp/namespace-no-imports.cc                 |   37 
 testsuite/gdb.cp/namespace-no-imports.exp                |   76 
 testsuite/gdb.cp/namespace-using.cc                      |  128 +
 testsuite/gdb.cp/namespace-using.exp                     |  117 +
 testsuite/gdb.cp/namespace.exp                           |   23 
 testsuite/gdb.cp/overload.exp                            |    8 
 testsuite/gdb.cp/ovldbreak.exp                           |   46 
 testsuite/gdb.cp/shadowing.cc                            |   45 
 testsuite/gdb.cp/shadowing.exp                           |   85 
 testsuite/gdb.dwarf2/dw2-stripped.c                      |   42 
 testsuite/gdb.dwarf2/dw2-stripped.exp                    |   79 
 testsuite/gdb.dwarf2/dw2-struct-member-data-location.S   |   83 
 testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp |   37 
 testsuite/gdb.fortran/common-block.exp                   |  101 
 testsuite/gdb.fortran/common-block.f90                   |   67 
 testsuite/gdb.fortran/dwarf-stride.exp                   |   42 
 testsuite/gdb.fortran/dwarf-stride.f90                   |   40 
 testsuite/gdb.fortran/dynamic.exp                        |  158 +
 testsuite/gdb.fortran/dynamic.f90                        |   98 
 testsuite/gdb.fortran/logical.exp                        |   44 
 testsuite/gdb.fortran/logical.f90                        |   33 
 testsuite/gdb.fortran/string.exp                         |   72 
 testsuite/gdb.fortran/string.f90                         |   37 
 testsuite/gdb.gdb/selftest.exp                           |    4 
 testsuite/gdb.mi/gdb701.exp                              |    2 
 testsuite/gdb.mi/mi-var-display.exp                      |    4 
 testsuite/gdb.mi/mi2-var-display.exp                     |    4 
 testsuite/gdb.opt/array-from-register-func.c             |   22 
 testsuite/gdb.opt/array-from-register.c                  |   28 
 testsuite/gdb.opt/array-from-register.exp                |   33 
 testsuite/gdb.python/Makefile.in                         |    2 
 testsuite/gdb.python/python-cmd.exp                      |   27 
 testsuite/gdb.python/python-frame.exp                    |   48 
 testsuite/gdb.python/python-function.exp                 |   27 
 testsuite/gdb.python/python-inferior.c                   |   49 
 testsuite/gdb.python/python-inferior.exp                 |  201 +
 testsuite/gdb.python/python-infthread.c                  |   14 
 testsuite/gdb.python/python-infthread.exp                |   58 
 testsuite/gdb.python/python-mi.exp                       |   25 
 testsuite/gdb.python/python-prettyprint.c                |   10 
 testsuite/gdb.python/python-prettyprint.exp              |   11 
 testsuite/gdb.python/python-prettyprint.py               |   12 
 testsuite/gdb.python/python-template.exp                 |   25 
 testsuite/gdb.python/python-value.exp                    |   68 
 testsuite/gdb.python/python.exp                          |   27 
 testsuite/lib/cp-support.exp                             |    3 
 testsuite/lib/gdb.exp                                    |    1 
 testsuite/lib/mi-support.exp                             |   22 
 testsuite/lib/python-support.exp                         |   53 
 thread.c                                                 |   18 
 top.c                                                    |    1 
 typeprint.c                                              |   14 
 typeprint.h                                              |    3 
 ui-file.c                                                |   20 
 ui-file.h                                                |    6 
 utils.c                                                  |    7 
 valarith.c                                               |   45 
 valops.c                                                 |  256 ++
 valprint.c                                               |    3 
 value.c                                                  |  159 +
 value.h                                                  |   13 
 varobj.c                                                 |  454 +++-
 varobj.h                                                 |   13 
 xcoffread.c                                              |    1 
 216 files changed, 15933 insertions(+), 2429 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.18 -r 1.19 gdb-archer.patchIndex: gdb-archer.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-archer.patch,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -p -r1.18 -r1.19
--- gdb-archer.patch	6 Jul 2009 14:59:10 -0000	1.18
+++ gdb-archer.patch	4 Aug 2009 05:37:28 -0000	1.19
@@ -2,3725 +2,25 @@ http://sourceware.org/gdb/wiki/ProjectAr
 http://sourceware.org/gdb/wiki/ArcherBranchManagement
 
 GIT snapshot:
-commit 17bfc0488f54aeeb7a9e20ef3caa7e31e8e985fb
+commit 0222cb1f4ddd1eda32965e464cb60b1e44e110b2
 
 branch `archer' - the merge of branches:
-archer-jankratochvil-merge-expr
-	archer-keiths-expr-cumulative
-		(archer-swagiaal-using-directive)
+archer-tromey-call-frame-cfa
+archer-tromey-delayed-symfile
+archer-tromey-dw-op-value
+archer-jankratochvil-vla
 archer-jankratochvil-misc
+archer-jankratochvil-expr-cumulative
+	archer-keiths-expr-cumulative
 archer-jankratochvil-python
-	archer-jankratochvil-type-refcount
 	archer-tromey-python
-archer-jankratochvil-vla
-	archer-jankratochvil-type-refcount
-archer-pmuldoon-exception-rewind-master
-archer-sergio-catch-syscall
-archer-tromey-charset
-archer-tromey-delayed-symfile
 
 
-diff --git a/bfd/po/es.po b/bfd/po/es.po
-index 9f2ec21..e4410d7 100644
---- a/bfd/po/es.po
-+++ b/bfd/po/es.po
-@@ -1,13 +1,14 @@
--# Mensajes en español para bfd 2.17.90.
--# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
--# Cristian Othón Martínez Vera <cfuga at itam.mx>, 2002, 2003, 2004, 2005, 2006, 2007
-+# Mensajes en español para bfd 2.18.90.
-+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+# This file is distributed under the same license as the binutils package.
-+# Cristian Othón Martínez Vera <cfuga at itam.mx>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
- #
- msgid ""
- msgstr ""
--"Project-Id-Version: bfd 2.17.90\n"
--"Report-Msgid-Bugs-To: \n"
--"POT-Creation-Date: 2007-08-06 16:21-0400\n"
--"PO-Revision-Date: 2007-09-08 08:57-0500\n"
-+"Project-Id-Version: bfd 2.18.90\n"
-+"Report-Msgid-Bugs-To: bug-binutils at gnu.org\n"
-+"POT-Creation-Date: 2008-09-09 15:56+0930\n"
-+"PO-Revision-Date: 2009-03-03 22:20-0600\n"
- "Last-Translator: Cristian Othón Martínez Vera <cfuga at itam.mx>\n"
- "Language-Team: Spanish <es at li.org>\n"
- "MIME-Version: 1.0\n"
-@@ -31,143 +32,143 @@ msgstr "%B: Tipo de reubicaci
- msgid "%B: Bad relocation record imported: %d"
- msgstr "%B: Registro de reubicación importado erróneo: %d"
- 
--#: aoutx.h:1268 aoutx.h:1602
-+#: aoutx.h:1268 aoutx.h:1604
- #, c-format
- msgid "%s: can not represent section `%s' in a.out object file format"
- msgstr "%s: no se puede representar la sección `%s' en el fichero objeto de formato a.out"
- 
--#: aoutx.h:1568
-+#: aoutx.h:1570
- #, c-format
- msgid "%s: can not represent section for symbol `%s' in a.out object file format"
- msgstr "%s: no se puede representar la sección para el símbolo `%s' en el fichero objeto de formato a.out"
- 
--#: aoutx.h:1570
-+#: aoutx.h:1572
- msgid "*unknown*"
- msgstr "*desconocido*"
- 
--#: aoutx.h:3987 aoutx.h:4313
-+#: aoutx.h:3989 aoutx.h:4315
- msgid "%P: %B: unexpected relocation type\n"
- msgstr "%P: %B: tipo de reubicación inesperado\n"
- 
--#: aoutx.h:5347
-+#: aoutx.h:5349
- #, c-format
- msgid "%s: relocatable link from %s to %s not supported"
- msgstr "%s: no se admite el enlace reubicable de %s a %s"
- 
--#: archive.c:1766
-+#: archive.c:2046
- msgid "Warning: writing archive was slow: rewriting timestamp\n"
- msgstr "Aviso: la escritura del fichero fue lenta: se reescribe la marca de tiempo\n"
- 
- # ¡Uff! Si utilizáramos file=archivo, esta traducción sería imposible. cfuga
--#: archive.c:2029
-+#: archive.c:2309
- msgid "Reading archive file mod timestamp"
- msgstr "Se lee el archivo de la modificación de marca de tiempo del fichero"
- 
--#: archive.c:2053
-+#: archive.c:2333
- msgid "Writing updated armap timestamp"
- msgstr "Se escribe la marca de tiempo actualizada de armap"
- 
--#: bfd.c:289
-+#: bfd.c:368
- msgid "No error"
- msgstr "No hay error"
- 
--#: bfd.c:290
-+#: bfd.c:369
- msgid "System call error"
- msgstr "Error en la llamada al sistema"
- 
--#: bfd.c:291
-+#: bfd.c:370
- msgid "Invalid bfd target"
- msgstr "Objetivo bfd inválido"
- 
--#: bfd.c:292
-+#: bfd.c:371
- msgid "File in wrong format"
- msgstr "Fichero en formato erróneo"
- 
--#: bfd.c:293
-+#: bfd.c:372
- msgid "Archive object file in wrong format"
- msgstr "Archivo de ficheros objeto en formato erróneo"
- 
--#: bfd.c:294
-+#: bfd.c:373
- msgid "Invalid operation"
- msgstr "Operación inválida"
- 
--#: bfd.c:295
-+#: bfd.c:374
- msgid "Memory exhausted"
- msgstr "Memoria agotada"
- 
--#: bfd.c:296
-+#: bfd.c:375
- msgid "No symbols"
- msgstr "No hay símbolos"
- 
--#: bfd.c:297
-+#: bfd.c:376
- msgid "Archive has no index; run ranlib to add one"
- msgstr "El archivo no tiene índice; ejecute ranlib para agregar uno"
- 
--#: bfd.c:298
-+#: bfd.c:377
- msgid "No more archived files"
- msgstr "No hay más ficheros archivados"
- 
--#: bfd.c:299
-+#: bfd.c:378
- msgid "Malformed archive"
- msgstr "Archivo malformado"
- 
--#: bfd.c:300
-+#: bfd.c:379
- msgid "File format not recognized"
- msgstr "No se reconoce el formato del fichero"
- 
--#: bfd.c:301
-+#: bfd.c:380
- msgid "File format is ambiguous"
- msgstr "El formato del fichero es ambiguo"
- 
--#: bfd.c:302
-+#: bfd.c:381
- msgid "Section has no contents"
- msgstr "La sección no tiene contenidos"
- 
--#: bfd.c:303
-+#: bfd.c:382
- msgid "Nonrepresentable section on output"
- msgstr "Sección no representable en la salida"
- 
--#: bfd.c:304
-+#: bfd.c:383
- msgid "Symbol needs debug section which does not exist"
- msgstr "Un símbolo requiere de una sección de depuración, la cual no existe"
- 
--#: bfd.c:305
-+#: bfd.c:384
- msgid "Bad value"
- msgstr "Valor erróneo"
- 
--#: bfd.c:306
-+#: bfd.c:385
- msgid "File truncated"
- msgstr "Fichero truncado"
[...66509 lines suppressed...]
- 
- {"lhbrx",	X(31,790),	X_MASK,      COM,	PPCNONE,	{RT, RA0, RB}},
- 
--{"lfqx",	X(31,791),	X_MASK,      POWER2,	PPCNONE,	{FRT, RA, RB}},
- {"lfdpx",	X(31,791),	X_MASK,      POWER6,	POWER7,		{FRT, RA, RB}},
-+{"lfqx",	X(31,791),	X_MASK,      POWER2,	PPCNONE,	{FRT, RA, RB}},
- 
- {"sraw",	XRC(31,792,0),	X_MASK,      PPCCOM,	PPCNONE,	{RA, RS, RB}},
- {"sra",		XRC(31,792,0),	X_MASK,      PWRCOM,	PPCNONE,	{RA, RS, RB}},
-@@ -4602,8 +4602,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- 
- {"lbzcix",	X(31,853),	X_MASK,      POWER6,	PPCNONE,	{RT, RA0, RB}},
- 
-+{"eieio",	X(31,854),	0xffffffff,  PPC,	BOOKE,		{0}},
- {"mbar",	X(31,854),	X_MASK,      BOOKE,	PPCNONE,	{MO}},
--{"eieio",	X(31,854),	0xffffffff,  PPC,	PPCNONE,	{0}},
- 
- {"lfiwax",	X(31,855),	X_MASK,      POWER6,	PPCNONE,	{FRT, RA0, RB}},
- 
-@@ -4638,8 +4638,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- 
- {"sthbrx",	X(31,918),	X_MASK,      COM,	PPCNONE,	{RS, RA0, RB}},
- 
--{"stfqx",	X(31,919),	X_MASK,      POWER2,	PPCNONE,	{FRS, RA, RB}},
- {"stfdpx",	X(31,919),	X_MASK,      POWER6,	PPCNONE,	{FRS, RA, RB}},
-+{"stfqx",	X(31,919),	X_MASK,      POWER2,	PPCNONE,	{FRS, RA, RB}},
- 
- {"sraq",	XRC(31,920,0),	X_MASK,      M601,	PPCNONE,	{RA, RS, RB}},
- {"sraq.",	XRC(31,920,1),	X_MASK,      M601,	PPCNONE,	{RA, RS, RB}},
-@@ -4687,10 +4687,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- 
- {"stxvd2x",	X(31,972),	XX1_MASK,    PPCVSX,	PPCNONE,	{XS6, RA, RB}},
- 
-+{"tlbld",	X(31,978),	XRTRA_MASK,  PPC,	PPC403|BOOKE,	{RB}},
- {"tlbwehi",	XTLB(31,978,0),	XTLB_MASK,   PPC403,	PPCNONE,	{RT, RA}},
- {"tlbwelo",	XTLB(31,978,1),	XTLB_MASK,   PPC403,	PPCNONE,	{RT, RA}},
- {"tlbwe",	X(31,978),	X_MASK,   PPC403|BOOKE,	PPCNONE,	{RSO, RAOPT, SHO}},
--{"tlbld",	X(31,978),	XRTRA_MASK,  PPC,	PPCNONE,	{RB}},
- 
- {"stbcix",	X(31,981),	X_MASK,      POWER6,	PPCNONE,	{RS, RA0, RB}},
- 
-@@ -4796,16 +4796,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"stfdu",	OP(55),		OP_MASK,     COM,	PPCNONE,	{FRS, D, RAS}},
- 
- {"lq",		OP(56),		OP_MASK,     POWER4,	PPCNONE,	{RTQ, DQ, RAQ}},
--
--{"lfq",		OP(56),		OP_MASK,     POWER2,	PPCNONE,	{FRT, D, RA0}},
--
- {"psq_l",	OP(56),		OP_MASK,     PPCPS,	PPCNONE,	{FRT,PSD,RA,PSW,PSQ}},
--
--{"lfqu",	OP(57),		OP_MASK,     POWER2,	PPCNONE,	{FRT, D, RA0}},
--
--{"psq_lu",	OP(57),		OP_MASK,     PPCPS,	PPCNONE,	{FRT,PSD,RA,PSW,PSQ}},
-+{"lfq",		OP(56),		OP_MASK,     POWER2,	PPCNONE,	{FRT, D, RA0}},
- 
- {"lfdp",	OP(57),		OP_MASK,     POWER6,	POWER7,		{FRT, D, RA0}},
-+{"psq_lu",	OP(57),		OP_MASK,     PPCPS,	PPCNONE,	{FRT,PSD,RA,PSW,PSQ}},
-+{"lfqu",	OP(57),		OP_MASK,     POWER2,	PPCNONE,	{FRT, D, RA0}},
- 
- {"ld",		DSO(58,0),	DS_MASK,     PPC64,	PPCNONE,	{RT, DS, RA0}},
- {"ldu",		DSO(58,1),	DS_MASK,     PPC64,	PPCNONE,	{RT, DS, RAL}},
-@@ -4829,18 +4825,18 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"fsqrts",	A(59,22,0),    AFRAFRC_MASK, PPC,	PPCNONE,	{FRT, FRB}},
- {"fsqrts.",	A(59,22,1),    AFRAFRC_MASK, PPC,	PPCNONE,	{FRT, FRB}},
- 
--{"fres",	A(59,24,0),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
--{"fres.",	A(59,24,1),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
- {"fres",	A(59,24,0),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"fres",	A(59,24,0),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
- {"fres.",	A(59,24,1),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"fres.",	A(59,24,1),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
- 
- {"fmuls",	A(59,25,0),	AFRB_MASK,   PPC,	PPCNONE,	{FRT, FRA, FRC}},
- {"fmuls.",	A(59,25,1),	AFRB_MASK,   PPC,	PPCNONE,	{FRT, FRA, FRC}},
+diff --git a/gdb/varobj.h b/gdb/varobj.h
+index 7297243..aabd743 100644
+--- a/gdb/varobj.h
++++ b/gdb/varobj.h
+@@ -112,6 +112,12 @@ extern void varobj_set_frozen (struct varobj *var, int frozen);
  
--{"frsqrtes",	A(59,26,0),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
--{"frsqrtes.",	A(59,26,1),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
- {"frsqrtes",	A(59,26,0),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"frsqrtes",	A(59,26,0),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
- {"frsqrtes.",	A(59,26,1),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"frsqrtes.",	A(59,26,1),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
+ extern int varobj_get_frozen (struct varobj *var);
  
- {"fmsubs",	A(59,28,0),	A_MASK,      PPC,	PPCNONE,	{FRT, FRA, FRC, FRB}},
- {"fmsubs.",	A(59,28,1),	A_MASK,      PPC,	PPCNONE,	{FRT, FRA, FRC, FRB}},
-@@ -4921,10 +4917,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"fcfidus",	XRC(59,974,0),	XRA_MASK,    POWER7,	PPCNONE,	{FRT, FRB}},
- {"fcfidus.",	XRC(59,974,1),	XRA_MASK,    POWER7,	PPCNONE,	{FRT, FRB}},
++extern void varobj_get_child_range (struct varobj *var,
++				    VEC (varobj_p) *children,
++				    int *from, int *to);
++
++extern void varobj_set_child_range (struct varobj *var, int from, int to);
++
+ extern char *varobj_get_display_hint (struct varobj *var);
  
--{"stfq",	OP(60),		OP_MASK,     POWER2,	PPCNONE,	{FRS, D, RA}},
--
--{"psq_st",	OP(60),		OP_MASK,     PPCPS,	PPCNONE,	{FRS,PSD,RA,PSW,PSQ}},
--
- {"xxsldwi",	XX3(60,2),	XX3SHW_MASK, PPCVSX,	PPCNONE,	{XT6, XA6, XB6, SHW}},
- {"xxsel",	XX4(60,3),	XX4_MASK,    PPCVSX,	PPCNONE,	{XT6, XA6, XB6, XC6}},
- {"xxspltd",	XX3(60,10),	XX3DM_MASK,  PPCVSX,	PPCNONE,	{XT6, XA6, XB6S, DMEX}},
-@@ -5067,11 +5059,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"xvcvsxddp",	XX2(60,504),	XX2_MASK,    PPCVSX,	PPCNONE,	{XT6, XB6}},
- {"xvnegdp",	XX2(60,505),	XX2_MASK,    PPCVSX,	PPCNONE,	{XT6, XB6}},
+ extern int varobj_get_num_children (struct varobj *var);
+@@ -143,12 +149,13 @@ extern void all_root_varobjs (void (*func) (struct varobj *var, void *data),
+ extern VEC(varobj_update_result) *varobj_update (struct varobj **varp, 
+ 						 int explicit);
  
--{"psq_stu",	OP(61),		OP_MASK,     PPCPS,	PPCNONE,	{FRS,PSD,RA,PSW,PSQ}},
+-extern void varobj_invalidate (void);
 -
--{"stfqu",	OP(61),		OP_MASK,     POWER2,	PPCNONE,	{FRS, D, RA}},
-+{"psq_st",	OP(60),		OP_MASK,     PPCPS,	PPCNONE,	{FRS,PSD,RA,PSW,PSQ}},
-+{"stfq",	OP(60),		OP_MASK,     POWER2,	PPCNONE,	{FRS, D, RA}},
- 
- {"stfdp",	OP(61),		OP_MASK,     POWER6,	PPCNONE,	{FRT, D, RA0}},
-+{"psq_stu",	OP(61),		OP_MASK,     PPCPS,	PPCNONE,	{FRS,PSD,RA,PSW,PSQ}},
-+{"stfqu",	OP(61),		OP_MASK,     POWER2,	PPCNONE,	{FRS, D, RA}},
- 
- {"std",		DSO(62,0),	DS_MASK,     PPC64,	PPCNONE,	{RS, DS, RA0}},
- {"stdu",	DSO(62,1),	DS_MASK,     PPC64,	PPCNONE,	{RS, DS, RAS}},
-@@ -5122,20 +5115,20 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"fsel",	A(63,23,0),	A_MASK,      PPC,	PPCNONE,	{FRT, FRA, FRC, FRB}},
- {"fsel.",	A(63,23,1),	A_MASK,      PPC,	PPCNONE,	{FRT, FRA, FRC, FRB}},
- 
--{"fre",		A(63,24,0),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
--{"fre.",	A(63,24,1),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
- {"fre",		A(63,24,0),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"fre",		A(63,24,0),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
- {"fre.",	A(63,24,1),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"fre.",	A(63,24,1),   AFRALFRC_MASK, POWER5,	POWER7,		{FRT, FRB, A_L}},
- 
- {"fmul",	A(63,25,0),	AFRB_MASK,   PPCCOM,	PPCNONE,	{FRT, FRA, FRC}},
- {"fm",		A(63,25,0),	AFRB_MASK,   PWRCOM,	PPCNONE,	{FRT, FRA, FRC}},
- {"fmul.",	A(63,25,1),	AFRB_MASK,   PPCCOM,	PPCNONE,	{FRT, FRA, FRC}},
- {"fm.",		A(63,25,1),	AFRB_MASK,   PWRCOM,	PPCNONE,	{FRT, FRA, FRC}},
- 
--{"frsqrte",	A(63,26,0),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
--{"frsqrte.",	A(63,26,1),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
- {"frsqrte",	A(63,26,0),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"frsqrte",	A(63,26,0),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
- {"frsqrte.",	A(63,26,1),   AFRAFRC_MASK,  POWER7,	PPCNONE,	{FRT, FRB}},
-+{"frsqrte.",	A(63,26,1),   AFRALFRC_MASK, PPC,	POWER7,		{FRT, FRB, A_L}},
- 
- {"fmsub",	A(63,28,0),	A_MASK,      PPCCOM,	PPCNONE,	{FRT, FRA, FRC, FRB}},
- {"fms",		A(63,28,0),	A_MASK,      PWRCOM,	PPCNONE,	{FRT, FRA, FRC, FRB}},
-@@ -5195,10 +5188,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- 
- {"dcmpoq",	X(63,130),	X_MASK,      POWER6,	PPCNONE,	{BF, FRA, FRB}},
- 
--{"mtfsfi",  XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,	{BFF, U}},
- {"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6, PPCNONE,	{BFF, U, W}},
--{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,	{BFF, U}},
-+{"mtfsfi",  XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,	{BFF, U}},
- {"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6, PPCNONE,	{BFF, U, W}},
-+{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,	{BFF, U}},
+ extern int varobj_editable_p (struct varobj *var);
  
- {"fnabs",	XRC(63,136,0),	XRA_MASK,    COM,	PPCNONE,	{FRT, FRB}},
- {"fnabs.",	XRC(63,136,1),	XRA_MASK,    COM,	PPCNONE,	{FRT, FRB}},
-@@ -5254,10 +5247,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- 
- {"dtstsfq",	X(63,674),	X_MASK,      POWER6,	PPCNONE,	{BF, FRA, FRB}},
+ extern int varobj_floating_p (struct varobj *var);
  
--{"mtfsf",	XFL(63,711,0),	XFL_MASK,    COM,	POWER6,		{FLM, FRB}},
- {"mtfsf",	XFL(63,711,0),	XFL_MASK,    POWER6,	PPCNONE,	{FLM, FRB, XFL_L, W}},
--{"mtfsf.",	XFL(63,711,1),	XFL_MASK,    COM,	POWER6,		{FLM, FRB}},
-+{"mtfsf",	XFL(63,711,0),	XFL_MASK,    COM,	POWER6,		{FLM, FRB}},
- {"mtfsf.",	XFL(63,711,1),	XFL_MASK,    POWER6,	PPCNONE,	{FLM, FRB, XFL_L, W}},
-+{"mtfsf.",	XFL(63,711,1),	XFL_MASK,    COM,	POWER6,		{FLM, FRB}},
+-extern void varobj_set_visualizer (struct varobj *var, const char *visualizer);
++extern void 
++varobj_set_visualizer (struct varobj *var, const char *visualizer);
++
++extern void varobj_enable_pretty_printing (void);
  
- {"drdpq",	XRC(63,770,0),	X_MASK,      POWER6,	PPCNONE,	{FRT, FRB}},
- {"drdpq.",	XRC(63,770,1),	X_MASK,      POWER6,	PPCNONE,	{FRT, FRB}},
+ #endif /* VAROBJ_H */
+diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
+index c56ab86..dacf913 100644
+--- a/gdb/xcoffread.c
++++ b/gdb/xcoffread.c
+@@ -3038,6 +3038,7 @@ static struct sym_fns xcoff_sym_fns =
+   xcoff_new_init,		/* sym_new_init: init anything gbl to entire symtab */
+   xcoff_symfile_init,		/* sym_init: read initial info, setup for sym_read() */
+   xcoff_initial_scan,		/* sym_read: read a symbol file into symtab */
++  NULL,				/* sym_read_psymbols */
+   xcoff_symfile_finish,		/* sym_finish: finished with file, cleanup */
+   xcoff_symfile_offsets,	/* sym_offsets: xlate offsets ext->int form */
+   default_symfile_segments,	/* sym_segments: Get segment information from


Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.367
retrieving revision 1.368
diff -u -p -r1.367 -r1.368
--- gdb.spec	31 Jul 2009 08:40:04 -0000	1.367
+++ gdb.spec	4 Aug 2009 05:37:29 -0000	1.368
@@ -10,11 +10,11 @@ Name: gdb%{?_with_debug:-debug}
 # Set version to contents of gdb/version.in.
 # NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3 
 # and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch).
-Version: 6.8.50.20090302
+Version: 6.8.50.20090803
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 42%{?_with_upstream:.upstream}%{?dist}
+Release: 1%{?_with_upstream:.upstream}%{?dist}
 
 License: GPLv3+
 Group: Development/Debuggers
@@ -82,12 +82,6 @@ Patch112: gdb-6.6-scheduler_locking-step
 # Make upstream `set scheduler-locking step' as default.
 Patch260: gdb-6.6-scheduler_locking-step-is-default.patch
 
-# Fix to display base constructors from list and breakpoint commands
-Patch116: gdb-6.3-linespec-20041213.patch
-
-# Continue removing breakpoints even when failure occurs.
-Patch117: gdb-6.3-removebp-20041130.patch
-
 # Add a wrapper script to GDB that implements pstack using the
 # --readnever option.
 Patch118: gdb-6.3-gstack-20050411.patch
@@ -102,9 +96,8 @@ Patch125: gdb-6.3-test-self-20050110.pat
 # Fix for non-threaded watchpoints.
 Patch128: gdb-6.3-nonthreaded-wp-20050117.patch
 
-# Fix to support multiple destructors just like multiple constructors
+# Test support of multiple destructors just like multiple constructors
 Patch133: gdb-6.3-test-dtorfix-20050121.patch
-Patch134: gdb-6.3-dtorfix-20050121.patch
 
 # Fix to support executable moving
 Patch136: gdb-6.3-test-movedir-20050125.patch
@@ -116,7 +109,6 @@ Patch136: gdb-6.3-test-movedir-20050125.
 Patch140: gdb-6.3-gcore-thread-20050204.patch
 
 # Stop while intentionally stepping and the thread exit is met.
-Patch141: gdb-6.6-step-thread-exit.patch
 Patch259: gdb-6.3-step-thread-exit-20050211-test.patch
 
 # Prevent gdb from being pushed into background
@@ -193,9 +185,6 @@ Patch196: gdb-6.5-sharedlibrary-path.pat
 # FIXME: It could be autodetected.
 Patch199: gdb-6.5-bz190810-gdbserver-arch-advice.patch
 
-# Fix dereferencing registers for 32bit inferiors on 64bit hosts (BZ 181390).
-Patch200: gdb-6.5-bz181390-memory-address-width.patch
-
 # Fix `gcore' command for 32bit inferiors on 64bit hosts.
 Patch201: gdb-6.5-gcore-i386-on-amd64.patch
 
@@ -228,8 +217,8 @@ Patch229: gdb-6.3-bz140532-ppc-unwinding
 # Testcase for exec() from threaded program (BZ 202689).
 Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
 
-# Backported post gdb-6.8.50.20090302 snapshot fixups.
-Patch232: gdb-6.8.50.20090302-upstream.patch
+# Backported post gdb-6.8.50.20090803 snapshot fixups.
+#Patch232: gdb-6.8.50.20090803-upstream.patch
 
 # Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
 Patch234: gdb-6.6-bz230000-power6-disassembly-test.patch
@@ -340,7 +329,6 @@ Patch324: gdb-6.8-glibc-headers-compat.p
 Patch326: gdb-6.8-tui-singlebinary.patch
 
 # Support transparent debugging of inlined functions for an optimized code.
-Patch327: gdb-6.8-inlining.patch
 Patch350: gdb-6.8-inlining-addon.patch
 Patch328: gdb-6.8-inlining-by-name.patch
 
@@ -356,9 +344,6 @@ Patch331: gdb-6.8-quit-never-aborts.patc
 # Support DW_TAG_constant for Fortran in recent Fedora/RH GCCs.
 Patch332: gdb-6.8-fortran-tag-constant.patch
 
-# bare names of constructors and destructors should be unique for GDB-6.8+.
-Patch334: gdb-6.8-ctors-dtors-unique.patch
-
 # Fix attaching to stopped processes and/or pending signals.
 Patch337: gdb-6.8-attach-signalled-detach-stopped.patch
 
@@ -376,22 +361,6 @@ Patch349: gdb-archer.patch
 Patch352: gdb-6.8-bz457187-largefile.patch
 Patch360: gdb-6.8-bz457187-largefile-test.patch
 
-# Fix crash on pretty-printer reading uninitialized std::string (BZ 495781).
-Patch357: gdb-c_get_string-xfree.patch
-
-# Fix crash in the charset support.
-Patch359: gdb-charset-crash.patch
-
-# Fix crashes due to (missing) varobj revalidation, for VLA (for BZ 377541).
-Patch369: gdb-varobj-revalidate-prep.patch
-Patch370: gdb-varobj-revalidate-core.patch
-
-# Implement DW_OP_call_frame_cfa (for recent GCC).
-Patch373: gdb-DW_OP_call_frame_cfa.patch
-
-# Accelerate sorting blocks on reading a file (found on WebKit) (BZ 507267).
-Patch374: gdb-bz507267-block-sort-fast.patch
-
 # Fix compatibility of --with-system-readline and readline-6.0+.
 Patch375: gdb-readline-6.0.patch
 
@@ -481,7 +450,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
 
 %if 0%{!?_with_upstream:1}
 
-%patch232 -p1
+#patch232 -p1
 %patch349 -p1
 %patch1 -p1
 %patch3 -p1
@@ -491,17 +460,13 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
 %patch106 -p1
 %patch111 -p1
 %patch112 -p1
-%patch116 -p1
-%patch117 -p1
 %patch118 -p1
 %patch122 -p1
 %patch125 -p1
 %patch128 -p1
 %patch133 -p1
-%patch134 -p1
 %patch136 -p1
 %patch140 -p1
-%patch141 -p1
 %patch259 -p1
 %patch142 -p1
 %patch145 -p1
@@ -527,7 +492,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
 %patch195 -p1
 %patch196 -p1
 %patch199 -p1
-%patch200 -p1
 %patch201 -p1
 %patch208 -p1
 %patch209 -p1
@@ -578,25 +542,17 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
 %patch322 -p1
 %patch324 -p1
 %patch326 -p1
-%patch327 -p1
 %patch350 -p1
 %patch328 -p1
 %patch329 -p1
 %patch330 -p1
 %patch331 -p1
 %patch332 -p1
-%patch334 -p1
 %patch337 -p1
 %patch343 -p1
 %patch348 -p1
 %patch352 -p1
-%patch357 -p1
-%patch359 -p1
 %patch360 -p1
-%patch369 -p1
-%patch370 -p1
-%patch373 -p1
-%patch374 -p1
 %patch375 -p1
 %patch124 -p1
 
@@ -886,6 +842,10 @@ fi
 %endif
 
 %changelog
+* Tue Aug  4 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090803-1
+- Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090803
+- archer-jankratochvil-fedora12 commit: 0222cb1f4ddd1eda32965e464cb60b1e44e110b2
+
 * Fri Jul 31 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-42
 - Release bump only.
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/sources,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -p -r1.31 -r1.32
--- sources	2 Mar 2009 23:14:15 -0000	1.31
+++ sources	4 Aug 2009 05:37:29 -0000	1.32
@@ -1 +1 @@
-a8eae0d4ef955ebcecfc7511af31070a  gdb-6.8.50.20090302.tar.bz2
+f120526b72a3dfd29e9f06a562e34aa1  gdb-6.8.50.20090803.tar.bz2


--- gdb-6.3-dtorfix-20050121.patch DELETED ---


--- gdb-6.3-linespec-20041213.patch DELETED ---


--- gdb-6.3-removebp-20041130.patch DELETED ---


--- gdb-6.5-bz181390-memory-address-width.patch DELETED ---


--- gdb-6.6-step-thread-exit.patch DELETED ---


--- gdb-6.8-ctors-dtors-unique.patch DELETED ---


--- gdb-6.8-inlining.patch DELETED ---


--- gdb-6.8.50.20090302-upstream.patch DELETED ---


--- gdb-DW_OP_call_frame_cfa.patch DELETED ---


--- gdb-bz507267-block-sort-fast.patch DELETED ---


--- gdb-c_get_string-xfree.patch DELETED ---


--- gdb-charset-crash.patch DELETED ---


--- gdb-varobj-revalidate-core.patch DELETED ---


--- gdb-varobj-revalidate-prep.patch DELETED ---




More information about the fedora-extras-commits mailing list