rpms/gdb/devel gdb-6.3-bz202689-exec-from-pthread-test.patch, NONE, 1.1 gdb-6.5-bz196439-valgrind-memcheck-compat-test.patch, NONE, 1.1 gdb-6.6-ia64-kernel-unwind.patch, NONE, 1.1 gdb-6.6-ia64-pc-unwind.patch, NONE, 1.1 .cvsignore, 1.21, 1.22 gdb-6.3-ia64-gcore-page0-20050421.patch, 1.2, 1.3 gdb-6.3-ia64-sigill-20051115.patch, 1.2, 1.3 gdb-6.3-large-core-20051206.patch, 1.2, 1.3 gdb-6.3-nonthreaded-wp-20050117.patch, 1.3, 1.4 gdb-6.3-pie-20050110.patch, 1.2, 1.3 gdb-6.3-security-errata-20050610.patch, 1.3, 1.4 gdb-6.3-test-sepcrc-20050402.patch, 1.1, 1.2 gdb-6.3-warnings-20050317.patch, 1.3, 1.4 gdb-6.5-bz109921-DW_AT_decl_file-fix.patch, 1.1, 1.2 gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch, 1.1, 1.2 gdb-6.5-bz190810-gdbserver-arch-advice.patch, 1.1, 1.2 gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch, 1.1, 1.2 gdb-6.5-gcore-i386-on-amd64.patch, 1.1, 1.2 gdb-6.5-symbols-overlap.patch, 1.1, 1.2 gdb.spec, 1.217, 1.218 sources, 1.20, 1.21 gdb-6.3-augmS-20060303.patch, 1.4, NONE gdb-6.3-bz146810-solib! _absolute_prefix_is_empty.patch, 1.2, NONE gdb-6.3-cfaval-20060303.patch, 1.5, NONE gdb-6.5-bfd-hash-style-20060714.patch, 1.1, NONE gdb-6.5-bz172034-disasm-i386-C6-C7.patch, 1.1, NONE gdb-6.5-bz195429-stale-threads-crash.patch, 1.2, NONE gdb-6.5-bz196439-valgrind-memcheck-compat.patch, 1.3, NONE gdb-6.5-bz206813-cplusplus-symbol-null.patch, 1.1, NONE gdb-6.5-last-address-space-byte.patch, 1.1, NONE gdb-6.5-matching_bfd_sections.patch, 1.2, NONE gdb-6.5-opcodes-i386-nopmem.patch, 1.2, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sun Jan 21 01:53:03 UTC 2007


Author: jkratoch

Update of /cvs/dist/rpms/gdb/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv7847

Modified Files:
	.cvsignore gdb-6.3-ia64-gcore-page0-20050421.patch 
	gdb-6.3-ia64-sigill-20051115.patch 
	gdb-6.3-large-core-20051206.patch 
	gdb-6.3-nonthreaded-wp-20050117.patch 
	gdb-6.3-pie-20050110.patch 
	gdb-6.3-security-errata-20050610.patch 
	gdb-6.3-test-sepcrc-20050402.patch 
	gdb-6.3-warnings-20050317.patch 
	gdb-6.5-bz109921-DW_AT_decl_file-fix.patch 
	gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch 
	gdb-6.5-bz190810-gdbserver-arch-advice.patch 
	gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch 
	gdb-6.5-gcore-i386-on-amd64.patch 
	gdb-6.5-symbols-overlap.patch gdb.spec sources 
Added Files:
	gdb-6.3-bz202689-exec-from-pthread-test.patch 
	gdb-6.5-bz196439-valgrind-memcheck-compat-test.patch 
	gdb-6.6-ia64-kernel-unwind.patch gdb-6.6-ia64-pc-unwind.patch 
Removed Files:
	gdb-6.3-augmS-20060303.patch 
	gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch 
	gdb-6.3-cfaval-20060303.patch 
	gdb-6.5-bfd-hash-style-20060714.patch 
	gdb-6.5-bz172034-disasm-i386-C6-C7.patch 
	gdb-6.5-bz195429-stale-threads-crash.patch 
	gdb-6.5-bz196439-valgrind-memcheck-compat.patch 
	gdb-6.5-bz206813-cplusplus-symbol-null.patch 
	gdb-6.5-last-address-space-byte.patch 
	gdb-6.5-matching_bfd_sections.patch 
	gdb-6.5-opcodes-i386-nopmem.patch 
Log Message:
* Sat Jan 20 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.6-1
- Upgrade to GDB 6.6.  Drop redundant patches, forward-port remaining ones.
- Backported post gdb-6.6 release ia64 unwinding fixups.
- Testcase for exec() from threaded program (BZ 202689).
- Resolves: rhbz#221125
- Related: rhbz#202689


gdb-6.3-bz202689-exec-from-pthread-test.patch:
 threaded-exec.c   |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 threaded-exec.exp |   41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+)

--- NEW FILE gdb-6.3-bz202689-exec-from-pthread-test.patch ---
2007-01-17  Jan Kratochvil <jan.kratochvil at redhat.com>

	* gdb.threads/threaded-exec.exp, gdb.threads/threaded-exec.c: New files.


--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.threads/threaded-exec.c	17 Jan 2007 23:10:22 -0000
@@ -0,0 +1,46 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <stddef.h>
+#include <pthread.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static void *
+threader (void *arg)
+{
+	return NULL;
+}
+
+int
+main (void)
+{
+	pthread_t t1;
+	int i;
+
+	i = pthread_create (&t1, NULL, threader, (void *) NULL);
+	assert (i == 0);
+	i = pthread_join (t1, NULL);
+	assert (i == 0);
+
+	execl ("/bin/true", "/bin/true", NULL);
+	abort ();
+}
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.threads/threaded-exec.exp	17 Jan 2007 23:10:22 -0000
@@ -0,0 +1,41 @@
+# threaded-exec.exp -- Check reset of the tracked threads on exec*(2)
+# Copyright (C) 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb at prep.ai.mit.edu
+
+set testfile threaded-exec
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable []] != "" } {
+    return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+
+gdb_load ${binfile}
+
+gdb_run_cmd
+
+gdb_test_multiple {} "Program exited" {
+   -re "\r\nProgram exited normally.\r\n$gdb_prompt $" {
+       pass "Program exited"
+   }
+}

gdb-6.5-bz196439-valgrind-memcheck-compat-test.patch:
 dw2-stripped.c   |   42 +++++++++++++++++++++++++++++
 dw2-stripped.exp |   79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 121 insertions(+)

--- NEW FILE gdb-6.5-bz196439-valgrind-memcheck-compat-test.patch ---
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=196439


2006-08-26  Jan Kratochvil  <jan.kratochvil at redhat.com>

        * gdb.dwarf2/dw2-stripped.exp: New file, Handle corrupted
        or missing location list information.
        * gdb.dwarf2/dw2-stripped.c: New file, Handle corrupted
        or missing location list information.


Index: gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
===================================================================
RCS file: gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
diff -N gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.c	26 Aug 2006 11:47:26 -0000
@@ -0,0 +1,42 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2004 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+ 
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   USA.  */
+
+
+/* The function `func1' traced into must have debug info on offset > 0;
+   (DW_UNSND (attr)).  This is the reason of `func0' existence.  */
+
+void
+func0(int a, int b)
+{
+}
+
+/* `func1' being traced into must have some arguments to dump.  */
+
+void
+func1(int a, int b)
+{
+  func0 (a,b);
+}
+
+int
+main(void)
+{
+  func1 (1, 2);
+  return 0;
+}
Index: gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
===================================================================
RCS file: gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
diff -N gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gdb-6.5/gdb/testsuite/gdb.dwarf2/dw2-stripped.exp	26 Aug 2006 11:47:27 -0000
@@ -0,0 +1,79 @@
+# Copyright 2006 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Minimal DWARF-2 unit test
+
+# This test can only be run on targets which support DWARF-2.
+# For now pick a sampling of likely targets.
+if {![istarget *-*-linux*]
+    && ![istarget *-*-gnu*]
+    && ![istarget *-*-elf*]
+    && ![istarget *-*-openbsd*]
+    && ![istarget arm-*-eabi*]
+    && ![istarget powerpc-*-eabi*]} {
+    return 0  
+}
+
+set testfile "dw2-stripped"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}.x
+
+remote_exec build "rm -f ${binfile}"
+
+# get the value of gcc_compiled
+if [get_compiler_info ${binfile}] {
+    return -1
+}
+
+# This test can only be run on gcc as we use additional_flags=FIXME
+if {$gcc_compiled == 0} {
+    return 0
+}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-ggdb3}] != "" } {
+    return -1
+}
+
+remote_exec build "objcopy -R .debug_loc ${binfile}"
+set strip_output [remote_exec build "objdump -h ${binfile}"]
+
+set test "stripping test file preservation"
+if [ regexp ".debug_info " $strip_output]  {
+    pass "$test (.debug_info preserved)"
+} else {
+    fail "$test (.debug_info got also stripped)"
+}
+
+set test "stripping test file functionality"
+if [ regexp ".debug_loc " $strip_output]  {
+    fail "$test (.debug_loc still present)"
+} else {
+    pass "$test (.debug_loc stripped)"
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
+
+# For C programs, "start" should stop in main().
+
+gdb_test "start" \
+         ".*main \\(\\) at .*" \
+         "start"
+gdb_test "step" \
+         "func.* \\(.*\\) at .*" \
+         "step"

gdb-6.6-ia64-kernel-unwind.patch:
 ia64-tdep.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

--- NEW FILE gdb-6.6-ia64-kernel-unwind.patch ---
2006-12-28  Daniel Jacobowitz  <dan at codesourcery.com>

	* ia64-tdep.c (get_kernel_table): Correct signedness in check
	for a negative return value.


--- ./gdb/ia64-tdep.c	12 Jul 2006 18:13:45 -0000	1.140
+++ ./gdb/ia64-tdep.c	28 Dec 2006 23:48:51 -0000	1.141
@@ -2486,13 +2486,14 @@ get_kernel_table (unw_word_t ip, unw_dyn
   if (!ktab) 
     {
       gdb_byte *ktab_buf;
-      size_t size;
+      LONGEST size;
 
-      ktab_size = getunwind_table (&ktab_buf);
-      if (ktab_size <= 0)
+      size = getunwind_table (&ktab_buf);
+      if (size <= 0)
 	return -UNW_ENOINFO;
-      else
-	ktab = (struct ia64_table_entry *) ktab_buf;
+
+      ktab = (struct ia64_table_entry *) ktab_buf;
+      ktab_size = size;
 
       for (etab = ktab; etab->start_offset; ++etab)
         etab->info_offset += KERNEL_START;

gdb-6.6-ia64-pc-unwind.patch:
 frame.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

--- NEW FILE gdb-6.6-ia64-pc-unwind.patch ---
2007-01-11  Daniel Jacobowitz  <dan at codesourcery.com>

	* frame.c (get_prev_frame_1): Check PC_REGNUM before using it.


--- ./gdb/frame.c	9 Jan 2007 20:19:15 -0000	1.218
+++ ./gdb/frame.c	11 Jan 2007 17:18:22 -0000	1.219
@@ -1221,10 +1221,17 @@ get_prev_frame_1 (struct frame_info *thi
      have different frame IDs, the new frame will be bogus; two
      functions can't share a register save slot for the PC.  This can
      happen when the prologue analyzer finds a stack adjustment, but
-     no PC save.  This check does assume that the "PC register" is
-     roughly a traditional PC, even if the gdbarch_unwind_pc method
-     frobs it.  */
+     no PC save.
+
+     This check does assume that the "PC register" is roughly a
+     traditional PC, even if the gdbarch_unwind_pc method adjusts
+     it (we do not rely on the value, only on the unwound PC being
+     dependent on this value).  A potential improvement would be
+     to have the frame prev_pc method and the gdbarch unwind_pc
+     method set the same lval and location information as
+     frame_register_unwind.  */
   if (this_frame->level > 0
+      && PC_REGNUM >= 0
       && get_frame_type (this_frame) == NORMAL_FRAME
       && get_frame_type (this_frame->next) == NORMAL_FRAME)
     {


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/.cvsignore,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- .cvsignore	11 Jul 2006 08:06:55 -0000	1.21
+++ .cvsignore	21 Jan 2007 01:53:01 -0000	1.22
@@ -1 +1 @@
-gdb-6.5.tar.bz2
+gdb-6.6.tar.bz2

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

Index: gdb-6.3-ia64-gcore-page0-20050421.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-ia64-gcore-page0-20050421.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-ia64-gcore-page0-20050421.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-ia64-gcore-page0-20050421.patch	21 Jan 2007 01:53:01 -0000	1.3
@@ -1,19 +1,19 @@
-Index: gdb-6.5/gdb/gcore.c
+Index: gdb-6.6/gdb/gcore.c
 ===================================================================
---- gdb-6.5.orig/gdb/gcore.c	2005-12-17 20:33:59.000000000 -0200
-+++ gdb-6.5/gdb/gcore.c	2006-07-07 02:41:33.000000000 -0300
-@@ -462,8 +462,13 @@ gcore_copy_callback (bfd *obfd, asection
-     error (_("Not enough memory to create corefile."));
-   old_chain = make_cleanup (xfree, memhunk);
+--- gdb-6.6.orig/gdb/gcore.c
++++ gdb-6.6/gdb/gcore.c
+@@ -475,8 +475,13 @@ gcore_copy_callback (bfd *obfd, asection
+       if (size > total_size)
+ 	size = total_size;
  
-+  /* Warn if read error occurs except if we were trying to read the
-+     first page for ia64.  The first page is marked readable, but it cannot
-+     be read.  */
-   if (target_read_memory (bfd_section_vma (obfd, osec),
--			  memhunk, size) != 0)
-+			  memhunk, size) != 0
-+      && (strcmp (TARGET_ARCHITECTURE->arch_name, "ia64")
-+          || bfd_section_vma (obfd, osec) != 0))
-     warning (_("Memory read failed for corefile section, %s bytes at 0x%s."),
- 	     paddr_d (size), paddr (bfd_section_vma (obfd, osec)));
-   if (!bfd_set_section_contents (obfd, osec, memhunk, 0, size))
++      /* Warn if read error occurs except if we were trying to read the
++	 first page for ia64.  The first page is marked readable, but it cannot
++	 be read.  */
+       if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
+-			      memhunk, size) != 0)
++			      memhunk, size) != 0
++	  && (strcmp (TARGET_ARCHITECTURE->arch_name, "ia64")
++	      || bfd_section_vma (obfd, osec) != 0))
+ 	{
+ 	  warning (_("Memory read failed for corefile section, %s bytes at 0x%s."),
+ 		   paddr_d (size), paddr (bfd_section_vma (obfd, osec)));

gdb-6.3-ia64-sigill-20051115.patch:
 linux-nat.c                        |    7 +++-
 testsuite/gdb.arch/ia64-sigill.c   |    8 +++++
 testsuite/gdb.arch/ia64-sigill.exp |   59 +++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+), 2 deletions(-)

Index: gdb-6.3-ia64-sigill-20051115.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-ia64-sigill-20051115.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-ia64-sigill-20051115.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-ia64-sigill-20051115.patch	21 Jan 2007 01:53:01 -0000	1.3
@@ -12,10 +12,10 @@
 	* gdb.arch/ia64-sigill.c: New test.
 	* gdb.arch/ia64-sigill.exp: Ditto.
 
-Index: gdb-6.5/gdb/testsuite/gdb.arch/ia64-sigill.exp
+Index: gdb-6.6/gdb/testsuite/gdb.arch/ia64-sigill.exp
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.arch/ia64-sigill.exp	2006-07-07 03:16:54.000000000 -0300
+--- /dev/null
++++ gdb-6.6/gdb/testsuite/gdb.arch/ia64-sigill.exp
 @@ -0,0 +1,59 @@
 +#   Copyright 2005 Free Software Foundation, Inc.
 +
@@ -76,10 +76,10 @@
 +gdb_test "handle SIGILL nostop noprint" "SIGILL.*No.*No.*Yes.*" "handle sigill"
 +gdb_test "run" "Starting program.*ia64-sigill.*\[New thread.*\].*hello world.*Program exited normally." "run to exit"
 + 
-Index: gdb-6.5/gdb/testsuite/gdb.arch/ia64-sigill.c
+Index: gdb-6.6/gdb/testsuite/gdb.arch/ia64-sigill.c
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.arch/ia64-sigill.c	2006-07-07 03:16:54.000000000 -0300
+--- /dev/null
++++ gdb-6.6/gdb/testsuite/gdb.arch/ia64-sigill.c
 @@ -0,0 +1,8 @@
 +#include <stdio.h>
 +
@@ -89,25 +89,11 @@
 +  return 0;
 +}
 +
-Index: gdb-6.5/gdb/linux-thread-db.c
+Index: gdb-6.6/gdb/linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/linux-thread-db.c	2006-07-07 01:06:36.000000000 -0300
-+++ gdb-6.5/gdb/linux-thread-db.c	2006-07-07 03:16:54.000000000 -0300
-@@ -926,7 +926,8 @@ thread_db_wait (ptid_t ptid, struct targ
-        post-processing and bail out early.  */
-     return ptid;
- 
--  if (ourstatus->kind == TARGET_WAITKIND_EXITED)
-+  if (ourstatus->kind == TARGET_WAITKIND_EXITED
-+      || ourstatus->kind == TARGET_WAITKIND_SIGNALLED)
-     return pid_to_ptid (-1);
- 
-   if (ourstatus->kind == TARGET_WAITKIND_STOPPED
-Index: gdb-6.5/gdb/linux-nat.c
-===================================================================
---- gdb-6.5.orig/gdb/linux-nat.c	2006-07-07 03:03:55.000000000 -0300
-+++ gdb-6.5/gdb/linux-nat.c	2006-07-07 03:16:54.000000000 -0300
-@@ -2209,7 +2209,8 @@ retry:
+--- gdb-6.6.orig/gdb/linux-nat.c
++++ gdb-6.6/gdb/linux-nat.c
+@@ -2241,7 +2241,8 @@ retry:
       threads can be a bit time-consuming so if we want decent
       performance with heavily multi-threaded programs, especially when
       they're using a high frequency timer, we'd better avoid it if we
@@ -117,7 +103,7 @@
  
    if (WIFSTOPPED (status))
      {
-@@ -2220,7 +2221,9 @@ retry:
+@@ -2252,7 +2253,9 @@ retry:
        if (!lp->step
  	  && signal_stop_state (signo) == 0
  	  && signal_print_state (signo) == 0

gdb-6.3-large-core-20051206.patch:
 dcache.c      |    4 ++--
 dcache.h      |    4 ++--
 exec.c        |    4 ++--
 infptrace.c   |   12 ++++++------
 linux-nat.c   |    2 +-
 remote-sim.c  |   21 ++++++++++++---------
 remote.c      |   15 ++++++++++++---
 symfile-mem.c |   10 +++++++++-
 target.c      |   18 +++++++++---------
 target.h      |   21 +++++++++++----------
 10 files changed, 66 insertions(+), 45 deletions(-)

Index: gdb-6.3-large-core-20051206.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-large-core-20051206.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-large-core-20051206.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-large-core-20051206.patch	21 Jan 2007 01:53:01 -0000	1.3
@@ -21,10 +21,10 @@
 	* remote.h: Ditto.
 	* dcache.h: Ditto.
 
-Index: gdb-6.5/gdb/symfile-mem.c
+Index: gdb-6.6/gdb/symfile-mem.c
 ===================================================================
---- gdb-6.5.orig/gdb/symfile-mem.c	2006-07-11 02:35:34.000000000 -0300
-+++ gdb-6.5/gdb/symfile-mem.c	2006-07-11 02:35:49.000000000 -0300
+--- gdb-6.6.orig/gdb/symfile-mem.c	2007-01-20 16:09:05.000000000 +0100
++++ gdb-6.6/gdb/symfile-mem.c	2007-01-20 16:09:17.000000000 +0100
 @@ -58,6 +58,14 @@
  #include "elf/common.h"
  
@@ -49,131 +49,56 @@
    if (nbfd == NULL)
      error (_("Failed to read a valid object file image from memory."));
  
-Index: gdb-6.5/gdb/target.c
+Index: gdb-6.6/gdb/target.c
 ===================================================================
---- gdb-6.5.orig/gdb/target.c	2006-07-11 02:35:49.000000000 -0300
-+++ gdb-6.5/gdb/target.c	2006-07-11 02:35:49.000000000 -0300
-@@ -83,8 +83,8 @@ static LONGEST default_xfer_partial (str
-    partial transfers, try either target_read_memory_partial or
-    target_write_memory_partial).  */
- 
--static int target_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
--			       int write);
-+static int target_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
-+			       LONGEST len, int write);
- 
- static void init_dummy_target (void);
- 
-@@ -511,8 +511,8 @@ update_current_target (void)
-   de_fault (to_prepare_to_store, 
- 	    (void (*) (void)) 
+--- gdb-6.6.orig/gdb/target.c	2007-01-20 16:09:12.000000000 +0100
++++ gdb-6.6/gdb/target.c	2007-01-20 16:09:17.000000000 +0100
+@@ -56,7 +56,7 @@ static int nosymbol (char *, CORE_ADDR *
+ 
+ static void tcomplain (void) ATTR_NORETURN;
+ 
+-static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
++static LONGEST nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
+ 
+ static int return_zero (void);
+ 
+@@ -284,7 +284,7 @@ target_mourn_inferior (void)
+   observer_notify_mourn_inferior (&current_target);
+ }
+ 
+-static int
++static LONGEST
+ nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
+ 	  struct target_ops *t)
+ {
+@@ -517,7 +517,7 @@ update_current_target (void)
+ 	    (void (*) (void))
  	    noprocess);
--  de_fault (deprecated_xfer_memory, 
--	    (int (*) (CORE_ADDR, gdb_byte *, int, int, struct mem_attrib *, struct target_ops *)) 
-+  de_fault (deprecated_xfer_memory,
+   de_fault (deprecated_xfer_memory,
+-	    (int (*) (CORE_ADDR, gdb_byte *, int, int, struct mem_attrib *, struct target_ops *))
 +	    (LONGEST (*) (CORE_ADDR, gdb_byte *, LONGEST, int, struct mem_attrib *, struct target_ops *))
  	    nomemory);
-   de_fault (to_files_info, 
- 	    (void (*) (struct target_ops *)) 
-@@ -940,7 +940,7 @@ target_xfer_partial (struct target_ops *
-    implementing another singluar mechanism (for instance, a generic
-    object:annex onto inferior:object:annex say).  */
- 
--static LONGEST
-+static int
- xfer_using_stratum (enum target_object object, const char *annex,
- 		    ULONGEST offset, LONGEST len, void *readbuf,
- 		    const void *writebuf)
-@@ -1005,7 +1005,7 @@ xfer_using_stratum (enum target_object o
-    deal with partial reads should call target_read_memory_partial. */
+   de_fault (to_files_info,
+ 	    (void (*) (struct target_ops *))
+@@ -1178,7 +1178,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_xfer_partial_p ())
-     return xfer_using_stratum (TARGET_OBJECT_MEMORY, NULL,
-@@ -1015,7 +1015,7 @@ target_read_memory (CORE_ADDR memaddr, g
+   if (target_read (&current_target, TARGET_OBJECT_MEMORY, NULL,
+ 		   myaddr, memaddr, len) == len)
+@@ -1188,7 +1188,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)
  {
-   gdb_byte *bytes = alloca (len);
-   memcpy (bytes, myaddr, len);
-@@ -1056,11 +1056,11 @@ Mode for reading from readonly sections 
- 
-    Result is -1 on error, or the number of bytes transfered.  */
- 
--int
--do_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write,
-+LONGEST
-+do_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len, int write,
- 		struct mem_attrib *attrib)
- {
--  int res;
-+  LONGEST res;
-   int done = 0;
-   struct target_ops *t;
- 
-@@ -1118,10 +1118,11 @@ do_xfer_memory (CORE_ADDR memaddr, gdb_b
-    Result is 0 or errno value.  */
- 
- static int
--target_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write)
-+target_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
-+		    LONGEST len, int write)
- {
--  int res;
--  int reg_len;
-+  LONGEST res;
-+  LONGEST reg_len;
-   struct mem_region *region;
- 
-   /* Zero length requests are ok and require no work.  */
-@@ -1192,12 +1193,12 @@ target_xfer_memory (CORE_ADDR memaddr, g
-    If we succeed, set *ERR to zero and return the number of bytes transferred.
-    If we fail, set *ERR to a non-zero errno value, and return -1.  */
- 
--static int
--target_xfer_memory_partial (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
-+static LONGEST
-+target_xfer_memory_partial (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len,
- 			    int write_p, int *err)
- {
--  int res;
--  int reg_len;
-+  LONGEST res;
-+  LONGEST reg_len;
-   struct mem_region *region;
- 
-   /* Zero length requests are ok and require no work.  */
-@@ -1256,9 +1257,9 @@ target_xfer_memory_partial (CORE_ADDR me
-   return res;
- }
- 
--int
-+LONGEST
- target_read_memory_partial (CORE_ADDR memaddr, gdb_byte *buf,
--			    int len, int *err)
-+			    LONGEST len, int *err)
- {
-   if (target_xfer_partial_p ())
-     {
-@@ -1285,9 +1286,9 @@ target_read_memory_partial (CORE_ADDR me
-     return target_xfer_memory_partial (memaddr, buf, len, 0, err);
- }
- 
--int
-+LONGEST
- target_write_memory_partial (CORE_ADDR memaddr, gdb_byte *buf,
--			     int len, int *err)
-+			     LONGEST len, int *err)
- {
-   if (target_xfer_partial_p ())
-     {
-@@ -2044,8 +2045,8 @@ debug_to_prepare_to_store (void)
+   if (target_write (&current_target, TARGET_OBJECT_MEMORY, NULL,
+ 		    myaddr, memaddr, len) == len)
+@@ -2186,8 +2186,8 @@ debug_to_prepare_to_store (void)
    fprintf_unfiltered (gdb_stdlog, "target_prepare_to_store ()\n");
  }
  
@@ -184,7 +109,7 @@
  			      int write, struct mem_attrib *attrib,
  			      struct target_ops *target)
  {
-@@ -2055,9 +2056,9 @@ deprecated_debug_xfer_memory (CORE_ADDR 
+@@ -2197,9 +2197,9 @@ deprecated_debug_xfer_memory (CORE_ADDR 
  						attrib, target);
  
    fprintf_unfiltered (gdb_stdlog,
@@ -196,11 +121,11 @@
  
    if (retval > 0)
      {
-Index: gdb-6.5/gdb/target.h
+Index: gdb-6.6/gdb/target.h
 ===================================================================
---- gdb-6.5.orig/gdb/target.h	2006-07-11 02:35:48.000000000 -0300
-+++ gdb-6.5/gdb/target.h	2006-07-11 02:35:49.000000000 -0300
-@@ -332,10 +332,10 @@ struct target_ops
+--- gdb-6.6.orig/gdb/target.h	2007-01-20 16:09:10.000000000 +0100
++++ gdb-6.6/gdb/target.h	2007-01-20 16:09:17.000000000 +0100
+@@ -347,10 +347,10 @@ struct target_ops
         NOTE: cagney/2004-10-01: This has been entirely superseeded by
         to_xfer_partial and inferior inheritance.  */
  
@@ -215,15 +140,7 @@
  
      void (*to_files_info) (struct target_ops *);
      int (*to_insert_breakpoint) (struct bp_target_info *);
-@@ -535,21 +535,23 @@ extern void target_disconnect (char *, i
- 
- extern DCACHE *target_dcache;
- 
--extern int do_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
--			   int write, struct mem_attrib *attrib);
-+extern LONGEST do_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
-+			       LONGEST len, int write,
-+			       struct mem_attrib *attrib);
+@@ -605,16 +605,17 @@ extern DCACHE *target_dcache;
  
  extern int target_read_string (CORE_ADDR, char **, int, int *);
  
@@ -245,29 +162,13 @@
 +extern LONGEST child_xfer_memory (CORE_ADDR, gdb_byte *, LONGEST, int,
 +				  struct mem_attrib *, struct target_ops *);
  
- /* Make a single attempt at transfering LEN bytes.  On a successful
-    transfer, the number of bytes actually transfered is returned and
-@@ -557,11 +559,11 @@ extern int child_xfer_memory (CORE_ADDR,
-    of bytes actually transfered is not defined) and ERR is set to a
-    non-zero error indication.  */
- 
--extern int target_read_memory_partial (CORE_ADDR addr, gdb_byte *buf,
--				       int len, int *err);
-+extern LONGEST target_read_memory_partial (CORE_ADDR addr, gdb_byte *buf,
-+					   LONGEST len, int *err);
- 
--extern int target_write_memory_partial (CORE_ADDR addr, gdb_byte *buf,
--					int len, int *err);
-+extern LONGEST target_write_memory_partial (CORE_ADDR addr, gdb_byte *buf,
-+					    LONGEST len, int *err);
- 
- extern char *child_pid_to_exec_file (int);
- 
-Index: gdb-6.5/gdb/infptrace.c
+ /* Fetches the target's memory map.  If one is found it is sorted
+    and returned, after some consistency checking.  Otherwise, NULL
+Index: gdb-6.6/gdb/infptrace.c
 ===================================================================
---- gdb-6.5.orig/gdb/infptrace.c	2006-07-11 02:35:49.000000000 -0300
-+++ gdb-6.5/gdb/infptrace.c	2006-07-11 02:35:49.000000000 -0300
-@@ -368,17 +368,17 @@ store_inferior_registers (int regnum)
+--- gdb-6.6.orig/gdb/infptrace.c	2005-12-17 23:34:01.000000000 +0100
++++ gdb-6.6/gdb/infptrace.c	2007-01-20 16:09:17.000000000 +0100
+@@ -331,17 +331,17 @@ store_inferior_registers (int regnum)
     deprecated_child_ops doesn't allow memory operations to cross below
     us in the target stack anyway.  */
  
@@ -291,11 +192,11 @@
    PTRACE_TYPE_RET *buffer;
    struct cleanup *old_chain = NULL;
  
-Index: gdb-6.5/gdb/dcache.c
+Index: gdb-6.6/gdb/dcache.c
 ===================================================================
---- gdb-6.5.orig/gdb/dcache.c	2006-07-11 02:35:34.000000000 -0300
-+++ gdb-6.5/gdb/dcache.c	2006-07-11 02:35:49.000000000 -0300
-@@ -527,9 +527,9 @@ dcache_free (DCACHE *dcache)
+--- gdb-6.6.orig/gdb/dcache.c	2006-08-15 20:46:24.000000000 +0200
++++ gdb-6.6/gdb/dcache.c	2007-01-20 16:09:17.000000000 +0100
+@@ -519,9 +519,9 @@ dcache_free (DCACHE *dcache)
  
     This routine is indended to be called by remote_xfer_ functions. */
  
@@ -307,10 +208,10 @@
  {
    int i;
    int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
-Index: gdb-6.5/gdb/dcache.h
+Index: gdb-6.6/gdb/dcache.h
 ===================================================================
---- gdb-6.5.orig/gdb/dcache.h	2006-07-11 02:35:34.000000000 -0300
-+++ gdb-6.5/gdb/dcache.h	2006-07-11 02:35:49.000000000 -0300
+--- gdb-6.6.orig/gdb/dcache.h	2005-12-17 23:33:59.000000000 +0100
++++ gdb-6.6/gdb/dcache.h	2007-01-20 16:09:17.000000000 +0100
 @@ -37,7 +37,7 @@ void dcache_free (DCACHE *);
  
  /* Simple to call from <remote>_xfer_memory */
@@ -321,11 +222,11 @@
 +			    LONGEST len, int should_write);
  
  #endif /* DCACHE_H */
-Index: gdb-6.5/gdb/exec.c
+Index: gdb-6.6/gdb/exec.c
 ===================================================================
---- gdb-6.5.orig/gdb/exec.c	2006-07-11 02:35:34.000000000 -0300
-+++ gdb-6.5/gdb/exec.c	2006-07-11 02:35:49.000000000 -0300
-@@ -447,8 +447,8 @@ map_vmap (bfd *abfd, bfd *arch)
+--- gdb-6.6.orig/gdb/exec.c	2006-11-10 20:20:35.000000000 +0100
++++ gdb-6.6/gdb/exec.c	2007-01-20 16:09:17.000000000 +0100
+@@ -452,8 +452,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.  */
  
@@ -336,11 +237,11 @@
  	     struct mem_attrib *attrib, struct target_ops *target)
  {
    int res;
-Index: gdb-6.5/gdb/linux-nat.c
+Index: gdb-6.6/gdb/linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/linux-nat.c	2006-07-11 02:35:49.000000000 -0300
-+++ gdb-6.5/gdb/linux-nat.c	2006-07-11 02:36:39.000000000 -0300
-@@ -3264,7 +3264,7 @@ linux_xfer_partial (struct target_ops *o
+--- gdb-6.6.orig/gdb/linux-nat.c	2007-01-20 16:09:14.000000000 +0100
++++ gdb-6.6/gdb/linux-nat.c	2007-01-20 16:09:17.000000000 +0100
+@@ -3266,7 +3266,7 @@ linux_xfer_partial (struct target_ops *o
  	 Revert when Bugzilla 147436 is fixed.  */
        if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
  	{ /* This region contains ia64 rse registers, we have to re-read.  */
@@ -349,10 +250,10 @@
  
  	  /* Re-read register stack area.  */
  	  xxfer = super_xfer_partial (ops, object, annex,
-Index: gdb-6.5/gdb/remote.c
+Index: gdb-6.6/gdb/remote.c
 ===================================================================
---- gdb-6.5.orig/gdb/remote.c	2006-07-11 02:35:48.000000000 -0300
-+++ gdb-6.5/gdb/remote.c	2006-07-11 02:37:02.000000000 -0300
+--- gdb-6.6.orig/gdb/remote.c	2007-01-20 16:09:12.000000000 +0100
++++ gdb-6.6/gdb/remote.c	2007-01-20 16:09:17.000000000 +0100
 @@ -27,6 +27,7 @@
  #include "gdb_string.h"
  #include <ctype.h>
@@ -361,7 +262,7 @@
  #include "inferior.h"
  #include "bfd.h"
  #include "symfile.h"
-@@ -3701,19 +3702,27 @@ remote_read_bytes (CORE_ADDR memaddr, gd
+@@ -4185,19 +4186,27 @@ remote_read_bytes (CORE_ADDR memaddr, gd
     if SHOULD_WRITE is nonzero.  Returns length of data written or
     read; 0 for error.  TARGET is unused.  */
  
@@ -372,8 +273,6 @@
  		    int should_write, struct mem_attrib *attrib,
  		    struct target_ops *target)
  {
-   CORE_ADDR targ_addr;
-   int targ_len;
    int res;
 +  int len;
 +
@@ -384,28 +283,21 @@
 +
 +  len = (int)mem_len;
  
-   /* Should this be the selected frame?  */
-   gdbarch_remote_translate_xfer_address (current_gdbarch, 
- 					 current_regcache,
--					 mem_addr, mem_len,
-+					 mem_addr, len,
- 					 &targ_addr, &targ_len);
-   if (targ_len <= 0)
-     return 0;
-@@ -3723,7 +3732,7 @@ remote_xfer_memory (CORE_ADDR mem_addr, 
+   if (should_write)
+     res = remote_write_bytes (mem_addr, buffer, mem_len);
    else
-     res = remote_read_bytes (targ_addr, buffer, targ_len);
+     res = remote_read_bytes (mem_addr, buffer, mem_len);
  
 -  return res;
 +  return (LONGEST)res;
  }
  
- static void
-Index: gdb-6.5/gdb/remote-sim.c
+ /* Sends a packet with content determined by the printf format string
+Index: gdb-6.6/gdb/remote-sim.c
 ===================================================================
---- gdb-6.5.orig/gdb/remote-sim.c	2006-07-11 02:35:34.000000000 -0300
-+++ gdb-6.5/gdb/remote-sim.c	2006-07-11 02:35:49.000000000 -0300
-@@ -742,11 +742,14 @@ gdbsim_prepare_to_store (void)
+--- gdb-6.6.orig/gdb/remote-sim.c	2006-11-10 20:20:36.000000000 +0100
++++ gdb-6.6/gdb/remote-sim.c	2007-01-20 16:10:10.000000000 +0100
+@@ -745,11 +745,14 @@ gdbsim_prepare_to_store (void)
  
     Returns the number of bytes transferred. */
  
@@ -419,10 +311,10 @@
 +  /* Convert to len type that sim_read and sim_write can handle.  */
 +  int xfer_len = (int)len;
 +
-   if (!program_loaded)
-     error (_("No program loaded."));
- 
-@@ -756,22 +759,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
+   /* If no program is running yet, then ignore the simulator for
+      memory.  Pass the request down to the next target, hopefully
+      an exec file.  */
+@@ -765,22 +768,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",

gdb-6.3-nonthreaded-wp-20050117.patch:
 doc/observer.texi |    4 ++++
 linux-nat.c       |   32 +++++++++++++++++++++++++++++---
 target.c          |    8 ++++++++
 target.h          |    3 +--
 4 files changed, 42 insertions(+), 5 deletions(-)

Index: gdb-6.3-nonthreaded-wp-20050117.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-nonthreaded-wp-20050117.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-nonthreaded-wp-20050117.patch	11 Jul 2006 06:33:02 -0000	1.3
+++ gdb-6.3-nonthreaded-wp-20050117.patch	21 Jan 2007 01:53:01 -0000	1.4
@@ -1,7 +1,7 @@
-Index: gdb-6.5/gdb/doc/observer.texi
+Index: gdb-6.6/gdb/doc/observer.texi
 ===================================================================
---- gdb-6.5.orig/gdb/doc/observer.texi	2006-07-07 04:08:37.000000000 -0300
-+++ gdb-6.5/gdb/doc/observer.texi	2006-07-07 04:19:00.000000000 -0300
+--- gdb-6.6.orig/gdb/doc/observer.texi
++++ gdb-6.6/gdb/doc/observer.texi
 @@ -119,6 +119,10 @@ when @value{GDBN} calls this observer, t
  haven't been loaded yet.
  @end deftypefun
@@ -13,11 +13,11 @@
  @deftypefun void solib_unloaded (struct so_list *@var{solib})
  The shared library specified by @var{solib} has been unloaded.
  @end deftypefun
-Index: gdb-6.5/gdb/linux-nat.c
+Index: gdb-6.6/gdb/linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/linux-nat.c	2006-07-07 04:00:05.000000000 -0300
-+++ gdb-6.5/gdb/linux-nat.c	2006-07-07 04:20:40.000000000 -0300
-@@ -802,11 +802,23 @@ iterate_over_lwps (int (*callback) (stru
+--- gdb-6.6.orig/gdb/linux-nat.c
++++ gdb-6.6/gdb/linux-nat.c
+@@ -803,11 +803,23 @@ iterate_over_lwps (int (*callback) (stru
  {
    struct lwp_info *lp, *lpnext;
  
@@ -72,19 +72,19 @@
    /* Save the original signal mask.  */
    sigprocmask (SIG_SETMASK, NULL, &normal_mask);
  
-Index: gdb-6.5/gdb/target.c
+Index: gdb-6.6/gdb/target.c
 ===================================================================
---- gdb-6.5.orig/gdb/target.c	2006-07-07 03:52:38.000000000 -0300
-+++ gdb-6.5/gdb/target.c	2006-07-07 04:19:00.000000000 -0300
-@@ -39,6 +39,7 @@
- #include "regcache.h"
+--- gdb-6.6.orig/gdb/target.c
++++ gdb-6.6/gdb/target.c
+@@ -40,6 +40,7 @@
  #include "gdb_assert.h"
  #include "gdbcore.h"
+ #include "exceptions.h"
 +#include "observer.h"
  
  static void target_info (char *, int);
  
-@@ -267,6 +268,13 @@ target_load (char *arg, int from_tty)
+@@ -276,6 +277,13 @@ target_load (char *arg, int from_tty)
    (*current_target.to_load) (arg, from_tty);
  }
  
@@ -98,11 +98,11 @@
  static int
  nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
  	  struct target_ops *t)
-Index: gdb-6.5/gdb/target.h
+Index: gdb-6.6/gdb/target.h
 ===================================================================
---- gdb-6.5.orig/gdb/target.h	2006-07-07 03:52:40.000000000 -0300
-+++ gdb-6.5/gdb/target.h	2006-07-07 04:19:00.000000000 -0300
-@@ -783,8 +783,7 @@ int target_follow_fork (int follow_child
+--- gdb-6.6.orig/gdb/target.h
++++ gdb-6.6/gdb/target.h
+@@ -891,8 +891,7 @@ int target_follow_fork (int follow_child
  
  /* The inferior process has died.  Do what is right.  */
  

gdb-6.3-pie-20050110.patch:
 auxv.c        |   20 ++-
 auxv.h        |    4 
 breakpoint.c  |   91 +++++++++++++---
 breakpoint.h  |    5 
 dwarf2read.c  |    2 
 elfread.c     |    2 
 infrun.c      |    5 
 objfiles.c    |   17 ++-
 solib-svr4.c  |  317 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 solib.c       |  107 ++++++++++++++-----
 solist.h      |   10 +
 symfile-mem.c |    2 
 symfile.c     |   22 +++-
 varobj.c      |   56 ++++++++++
 varobj.h      |    2 
 15 files changed, 576 insertions(+), 86 deletions(-)

Index: gdb-6.3-pie-20050110.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-pie-20050110.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-pie-20050110.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-pie-20050110.patch	21 Jan 2007 01:53:01 -0000	1.3
@@ -1,8 +1,8 @@
-Index: gdb-6.5/gdb/dwarf2read.c
+Index: gdb-6.6/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.5.orig/gdb/dwarf2read.c	2006-07-11 02:47:11.000000000 -0300
-+++ gdb-6.5/gdb/dwarf2read.c	2006-07-11 02:56:58.000000000 -0300
-@@ -1208,7 +1208,7 @@ dwarf2_build_psymtabs (struct objfile *o
+--- gdb-6.6.orig/gdb/dwarf2read.c
++++ gdb-6.6/gdb/dwarf2read.c
+@@ -1219,7 +1219,7 @@ dwarf2_build_psymtabs (struct objfile *o
    else
      dwarf2_per_objfile->loc_buffer = NULL;
  
@@ -11,11 +11,11 @@
        || (objfile->global_psymbols.size == 0
  	  && objfile->static_psymbols.size == 0))
      {
-Index: gdb-6.5/gdb/auxv.c
+Index: gdb-6.6/gdb/auxv.c
 ===================================================================
---- gdb-6.5.orig/gdb/auxv.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/auxv.c	2006-07-11 02:47:11.000000000 -0300
-@@ -119,7 +119,7 @@ target_auxv_read (struct target_ops *ops
+--- gdb-6.6.orig/gdb/auxv.c
++++ gdb-6.6/gdb/auxv.c
+@@ -82,7 +82,7 @@ procfs_xfer_auxv (struct target_ops *ops
     Return 1 if an entry was read into *TYPEP and *VALP.  */
  int
  target_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
@@ -24,7 +24,7 @@
  {
    const int sizeof_auxv_field = TYPE_LENGTH (builtin_type_void_data_ptr);
    gdb_byte *ptr = *readptr;
-@@ -144,9 +144,10 @@ target_auxv_parse (struct target_ops *op
+@@ -107,9 +107,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
@@ -35,9 +35,9 @@
 +  CORE_ADDR val;
 +  ULONGEST at_type;
    gdb_byte *data;
-   int n = target_auxv_read (ops, &data);
+   LONGEST n = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL, &data);
    gdb_byte *ptr = data;
-@@ -156,10 +157,10 @@ target_auxv_search (struct target_ops *o
+@@ -119,10 +120,10 @@ target_auxv_search (struct target_ops *o
      return n;
  
    while (1)
@@ -50,7 +50,7 @@
  	  {
  	    xfree (data);
  	    *valp = val;
-@@ -182,7 +183,8 @@ target_auxv_search (struct target_ops *o
+@@ -145,7 +146,8 @@ target_auxv_search (struct target_ops *o
  int
  fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
  {
@@ -58,9 +58,9 @@
 +  CORE_ADDR val;
 +  ULONGEST at_type;
    gdb_byte *data;
-   int len = target_auxv_read (ops, &data);
-   gdb_byte *ptr = data;
-@@ -191,14 +193,14 @@ fprint_target_auxv (struct ui_file *file
+   LONGEST len = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL,
+ 				   &data);
+@@ -155,14 +157,14 @@ fprint_target_auxv (struct ui_file *file
    if (len <= 0)
      return len;
  
@@ -77,7 +77,7 @@
  	{
  #define TAG(tag, text, kind) \
  	case tag: name = #tag; description = text; flavor = kind; break
-@@ -249,7 +251,7 @@ fprint_target_auxv (struct ui_file *file
+@@ -213,7 +215,7 @@ fprint_target_auxv (struct ui_file *file
  	}
  
        fprintf_filtered (file, "%-4s %-20s %-30s ",
@@ -86,11 +86,11 @@
        switch (flavor)
  	{
  	case dec:
-Index: gdb-6.5/gdb/auxv.h
+Index: gdb-6.6/gdb/auxv.h
 ===================================================================
---- gdb-6.5.orig/gdb/auxv.h	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/auxv.h	2006-07-11 02:47:11.000000000 -0300
-@@ -43,14 +43,14 @@ extern LONGEST target_auxv_read (struct 
+--- gdb-6.6.orig/gdb/auxv.h
++++ gdb-6.6/gdb/auxv.h
+@@ -37,14 +37,14 @@ struct target_ops;		/* Forward declarati
     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,
@@ -107,10 +107,10 @@
  
  /* 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.5/gdb/breakpoint.h
+Index: gdb-6.6/gdb/breakpoint.h
 ===================================================================
---- gdb-6.5.orig/gdb/breakpoint.h	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/breakpoint.h	2006-07-11 02:47:11.000000000 -0300
+--- gdb-6.6.orig/gdb/breakpoint.h
++++ gdb-6.6/gdb/breakpoint.h
 @@ -159,6 +159,7 @@ enum enable_state
  			   automatically enabled and reset when the call 
  			   "lands" (either completes, or stops at another 
@@ -132,10 +132,10 @@
  extern void create_solib_load_event_breakpoint (char *, int, char *, char *);
  
  extern void create_solib_unload_event_breakpoint (char *, int,
-Index: gdb-6.5/gdb/symfile-mem.c
+Index: gdb-6.6/gdb/symfile-mem.c
 ===================================================================
---- gdb-6.5.orig/gdb/symfile-mem.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/symfile-mem.c	2006-07-11 02:56:55.000000000 -0300
+--- gdb-6.6.orig/gdb/symfile-mem.c
++++ gdb-6.6/gdb/symfile-mem.c
 @@ -110,7 +110,7 @@ symbol_file_add_from_memory (struct bfd 
        }
  
@@ -145,11 +145,11 @@
  
    /* This might change our ideas about frames already looked at.  */
    reinit_frame_cache ();
-Index: gdb-6.5/gdb/infrun.c
+Index: gdb-6.6/gdb/infrun.c
 ===================================================================
---- gdb-6.5.orig/gdb/infrun.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/infrun.c	2006-07-11 02:56:58.000000000 -0300
-@@ -2230,6 +2230,11 @@ process_event_stop_test:
+--- gdb-6.6.orig/gdb/infrun.c
++++ gdb-6.6/gdb/infrun.c
+@@ -2249,6 +2249,11 @@ process_event_stop_test:
  	     code segments in shared libraries might be mapped in now. */
  	  re_enable_breakpoints_in_shlibs ();
  
@@ -161,11 +161,11 @@
  	  /* 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.5/gdb/objfiles.c
+Index: gdb-6.6/gdb/objfiles.c
 ===================================================================
---- gdb-6.5.orig/gdb/objfiles.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/objfiles.c	2006-07-11 02:47:11.000000000 -0300
-@@ -47,6 +47,9 @@
+--- gdb-6.6.orig/gdb/objfiles.c
++++ gdb-6.6/gdb/objfiles.c
+@@ -50,6 +50,9 @@
  #include "dictionary.h"
  #include "source.h"
  
@@ -175,7 +175,7 @@
  /* Prototypes for local functions */
  
  static void objfile_alloc_data (struct objfile *objfile);
-@@ -258,7 +261,19 @@ init_entry_point_info (struct objfile *o
+@@ -261,7 +264,19 @@ init_entry_point_info (struct objfile *o
  CORE_ADDR
  entry_point_address (void)
  {
@@ -196,10 +196,10 @@
  }
  
  /* Create the terminating entry of OBJFILE's minimal symbol table.
-Index: gdb-6.5/gdb/solib-svr4.c
+Index: gdb-6.6/gdb/solib-svr4.c
 ===================================================================
---- gdb-6.5.orig/gdb/solib-svr4.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/solib-svr4.c	2006-07-11 02:47:11.000000000 -0300
+--- gdb-6.6.orig/gdb/solib-svr4.c
++++ gdb-6.6/gdb/solib-svr4.c
 @@ -34,6 +34,8 @@
  #include "gdbcore.h"
  #include "target.h"
@@ -209,7 +209,7 @@
  
  #include "gdb_assert.h"
  
-@@ -254,7 +256,9 @@ static CORE_ADDR breakpoint_addr;	/* Add
+@@ -267,7 +269,9 @@ static char *debug_loader_name;
  
  /* Local function prototypes */
  
@@ -219,7 +219,7 @@
  
  static CORE_ADDR bfd_lookup_symbol (bfd *, char *, flagword);
  
-@@ -376,22 +380,79 @@ elf_locate_base (void)
+@@ -389,22 +393,79 @@ elf_locate_base (void)
  {
    struct bfd_section *dyninfo_sect;
    int dyninfo_sect_size;
@@ -303,7 +303,7 @@
  
    /* Find the DT_DEBUG entry in the the .dynamic section.
       For mips elf we look for DT_MIPS_RLD_MAP, mips elf apparently has
-@@ -418,6 +479,10 @@ elf_locate_base (void)
+@@ -431,6 +492,10 @@ elf_locate_base (void)
  	    {
  	      dyn_ptr = bfd_h_get_32 (exec_bfd, 
  				      (bfd_byte *) x_dynp->d_un.d_ptr);
@@ -314,7 +314,7 @@
  	      return dyn_ptr;
  	    }
  	  else if (dyn_tag == DT_MIPS_RLD_MAP)
-@@ -543,6 +608,10 @@ solib_svr4_r_map (void)
+@@ -556,6 +621,10 @@ solib_svr4_r_map (void)
  {
    struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
  
@@ -325,7 +325,7 @@
    return read_memory_typed_address (debug_base + lmo->r_map_offset,
  				    builtin_type_void_data_ptr);
  }
-@@ -669,6 +738,11 @@ svr4_current_sos (void)
+@@ -713,6 +782,11 @@ svr4_current_sos (void)
    struct so_list **link_ptr = &head;
    CORE_ADDR ldsomap = 0;
  
@@ -337,18 +337,18 @@
    /* Make sure we've looked up the inferior's dynamic linker's base
       structure.  */
    if (! debug_base)
-@@ -678,11 +752,21 @@ svr4_current_sos (void)
+@@ -722,11 +796,21 @@ 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)
--	return 0;
-+	{
+-	return svr4_default_sos ();
++        {
 +	  if (debug_solib)
 +	    fprintf_unfiltered (gdb_stdlog, 
 +				"svr4_current_sos: no DT_DEBUG found in %s -- return now\n",
 +				exec_bfd->filename);
-+	  return 0;
-+	}
++	  return svr4_default_sos ();
++        }
      }
  
    /* Walk the inferior's link map list, and build our list of
@@ -358,9 +358,9 @@
 +                        "svr4_current_sos: walk link map in %s\n",
 +                        exec_bfd->filename);
    lm = solib_svr4_r_map ();
+ 
    while (lm)
-     {
-@@ -697,23 +781,103 @@ svr4_current_sos (void)
+@@ -742,23 +826,103 @@ svr4_current_sos (void)
        new->lm_info->lm = xzalloc (lmo->link_map_size);
        make_cleanup (xfree, new->lm_info->lm);
  
@@ -465,7 +465,7 @@
  	  target_read_string (LM_NAME (new), &buffer,
  			      SO_NAME_MAX_PATH_SIZE - 1, &errcode);
  	  if (errcode != 0)
-@@ -721,22 +885,37 @@ svr4_current_sos (void)
+@@ -766,22 +930,37 @@ svr4_current_sos (void)
  		     safe_strerror (errcode));
  	  else
  	    {
@@ -519,9 +519,9 @@
  	    }
  	}
  
-@@ -750,6 +929,11 @@ svr4_current_sos (void)
-       discard_cleanups (old_chain);
-     }
+@@ -798,6 +977,11 @@ svr4_current_sos (void)
+   if (head == NULL)
+     return svr4_default_sos ();
  
 +  if (debug_solib)
 +    fprintf_unfiltered (gdb_stdlog, 
@@ -531,7 +531,7 @@
    return head;
  }
  
-@@ -826,7 +1010,7 @@ svr4_fetch_objfile_link_map (struct objf
+@@ -874,7 +1058,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.  */
@@ -540,7 +540,7 @@
  static int
  match_main (char *soname)
  {
-@@ -840,6 +1024,7 @@ match_main (char *soname)
+@@ -888,6 +1072,7 @@ match_main (char *soname)
  
    return (0);
  }
@@ -548,7 +548,7 @@
  
  /* Return 1 if PC lies in the dynamic symbol resolution code of the
     SVR4 run time loader.  */
-@@ -939,6 +1124,11 @@ enable_break (void)
+@@ -987,6 +1172,11 @@ enable_break (void)
    /* Find the .interp section; if not found, warn the user and drop
       into the old breakpoint at symbol code.  */
    interp_sect = bfd_get_section_by_name (exec_bfd, ".interp");
@@ -560,7 +560,7 @@
    if (interp_sect)
      {
        unsigned int interp_sect_size;
-@@ -972,6 +1162,9 @@ enable_break (void)
+@@ -1025,6 +1215,9 @@ enable_break (void)
        if (tmp_fd >= 0)
  	tmp_bfd = bfd_fopen (tmp_pathname, gnutarget, FOPEN_RB, tmp_fd);
  
@@ -570,7 +570,7 @@
        if (tmp_bfd == NULL)
  	goto bkpt_at_symbol;
  
-@@ -1052,6 +1245,9 @@ enable_break (void)
+@@ -1111,6 +1304,9 @@ enable_break (void)
        if (sym_addr != 0)
  	{
  	  create_solib_event_breakpoint (load_addr + sym_addr);
@@ -580,7 +580,7 @@
  	  return 1;
  	}
  
-@@ -1311,6 +1507,8 @@ svr4_solib_create_inferior_hook (void)
+@@ -1372,6 +1568,8 @@ svr4_solib_create_inferior_hook (void)
    while (stop_signal != TARGET_SIGNAL_TRAP);
    stop_soon = NO_STOP_QUIETLY;
  #endif /* defined(_SCO_DS) */
@@ -589,7 +589,7 @@
  }
  
  static void
-@@ -1493,6 +1691,75 @@ svr4_lp64_fetch_link_map_offsets (void)
+@@ -1558,6 +1756,75 @@ svr4_lp64_fetch_link_map_offsets (void)
  
    return lmp;
  }
@@ -665,7 +665,7 @@
  
  
  static struct target_so_ops svr4_so_ops;
-@@ -1515,4 +1782,8 @@ _initialize_svr4_solib (void)
+@@ -1580,4 +1847,8 @@ _initialize_svr4_solib (void)
  
    /* FIXME: Don't do this here.  *_gdbarch_init() should set so_ops. */
    current_target_so_ops = &svr4_so_ops;
@@ -674,10 +674,10 @@
 +            "Display the inferior's linkmap.");
 +
  }
-Index: gdb-6.5/gdb/varobj.c
+Index: gdb-6.6/gdb/varobj.c
 ===================================================================
---- gdb-6.5.orig/gdb/varobj.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/varobj.c	2006-07-11 02:56:57.000000000 -0300
+--- gdb-6.6.orig/gdb/varobj.c
++++ gdb-6.6/gdb/varobj.c
 @@ -870,6 +870,62 @@ varobj_list (struct varobj ***varlist)
    return rootcount;
  }
@@ -741,10 +741,10 @@
  /* Update the values for a variable and its children.  This is a
     two-pronged attack.  First, re-parse the value for the root's
     expression to see if it's changed.  Then go all the way
-Index: gdb-6.5/gdb/solist.h
+Index: gdb-6.6/gdb/solist.h
 ===================================================================
---- gdb-6.5.orig/gdb/solist.h	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/solist.h	2006-07-11 02:47:11.000000000 -0300
+--- gdb-6.6.orig/gdb/solist.h
++++ gdb-6.6/gdb/solist.h
 @@ -62,6 +62,8 @@ struct so_list
      bfd *abfd;
      char symbols_loaded;	/* flag: symbols read in yet? */
@@ -777,10 +777,10 @@
 +/* Controls the printing of debugging output.  */
 +extern int debug_solib;
  #endif
-Index: gdb-6.5/gdb/varobj.h
+Index: gdb-6.6/gdb/varobj.h
 ===================================================================
---- gdb-6.5.orig/gdb/varobj.h	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/varobj.h	2006-07-11 02:47:11.000000000 -0300
+--- gdb-6.6.orig/gdb/varobj.h
++++ gdb-6.6/gdb/varobj.h
 @@ -99,4 +99,6 @@ extern int varobj_list (struct varobj **
  
  extern int varobj_update (struct varobj **varp, struct varobj ***changelist);
@@ -788,10 +788,10 @@
 +extern void varobj_refresh(void);
 +
  #endif /* VAROBJ_H */
-Index: gdb-6.5/gdb/symfile.c
+Index: gdb-6.6/gdb/symfile.c
 ===================================================================
---- gdb-6.5.orig/gdb/symfile.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/symfile.c	2006-07-11 02:56:57.000000000 -0300
+--- gdb-6.6.orig/gdb/symfile.c
++++ gdb-6.6/gdb/symfile.c
 @@ -49,6 +49,7 @@
  #include "readline/readline.h"
  #include "gdb_assert.h"
@@ -799,8 +799,8 @@
 +#include "varobj.h"
  #include "observer.h"
  #include "exec.h"
- 
-@@ -658,7 +659,7 @@ syms_from_objfile (struct objfile *objfi
+ #include "parser-defs.h"
+@@ -659,7 +660,7 @@ syms_from_objfile (struct objfile *objfi
  
    /* Now either addrs or offsets is non-zero.  */
  
@@ -809,7 +809,7 @@
      {
        /* We will modify the main symbol table, make sure that all its users
           will be cleaned up if an error occurs during symbol reading.  */
-@@ -686,7 +687,7 @@ syms_from_objfile (struct objfile *objfi
+@@ -687,7 +688,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.  */
@@ -818,7 +818,7 @@
      {
        asection *lower_sect;
        asection *sect;
-@@ -855,17 +856,21 @@ new_symfile_objfile (struct objfile *obj
+@@ -856,17 +857,21 @@ 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.  */
@@ -842,7 +842,7 @@
  
    /* We're done reading the symbol file; finish off complaints.  */
    clear_complaints (&symfile_complaints, 0, verbo);
-@@ -908,7 +913,7 @@ symbol_file_add_with_addrs_or_offsets (b
+@@ -909,7 +914,7 @@ symbol_file_add_with_addrs_or_offsets (b
       interactively wiping out any existing symbols.  */
  
    if ((have_full_symbols () || have_partial_symbols ())
@@ -851,7 +851,7 @@
        && from_tty
        && !query ("Load new symbol table from \"%s\"? ", name))
      error (_("Not confirmed."));
-@@ -1089,6 +1094,10 @@ symbol_file_clear (int from_tty)
+@@ -1090,6 +1095,10 @@ symbol_file_clear (int from_tty)
  		    symfile_objfile->name)
  	  : !query (_("Discard symbol table? "))))
      error (_("Not confirmed."));
@@ -862,7 +862,7 @@
      free_all_objfiles ();
  
      /* solib descriptors may have handles to objfiles.  Since their
-@@ -2154,6 +2163,8 @@ reread_symbols (void)
+@@ -2204,6 +2213,8 @@ reread_symbols (void)
  	      /* Discard cleanups as symbol reading was successful.  */
  	      discard_cleanups (old_cleanups);
  
@@ -871,19 +871,19 @@
  	      /* 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.  */
-@@ -2529,6 +2540,7 @@ clear_symtab_users (void)
+@@ -2579,6 +2590,7 @@ clear_symtab_users (void)
    clear_pc_function_cache ();
    if (deprecated_target_new_objfile_hook)
      deprecated_target_new_objfile_hook (NULL);
 +  varobj_refresh ();
- }
  
- static void
-Index: gdb-6.5/gdb/breakpoint.c
+   /* Clear globals which might have pointed into a removed objfile.
+      FIXME: It's not clear which of these are supposed to persist
+Index: gdb-6.6/gdb/breakpoint.c
 ===================================================================
---- gdb-6.5.orig/gdb/breakpoint.c	2006-07-11 02:47:11.000000000 -0300
-+++ gdb-6.5/gdb/breakpoint.c	2006-07-11 02:56:59.000000000 -0300
-@@ -782,15 +782,15 @@ insert_watchpoints_for_new_thread (ptid_
+--- gdb-6.6.orig/gdb/breakpoint.c
++++ gdb-6.6/gdb/breakpoint.c
+@@ -781,15 +781,15 @@ insert_watchpoints_for_new_thread (ptid_
  	  struct value *v = b->owner->val_chain;
  
  	  /* Look at each value on the value chain.  */
@@ -902,7 +902,7 @@
  		  
  		  /* We only watch structs and arrays if user asked
  		     for it explicitly, never if they just happen to
-@@ -802,8 +802,8 @@ insert_watchpoints_for_new_thread (ptid_
+@@ -801,8 +801,8 @@ insert_watchpoints_for_new_thread (ptid_
  		      CORE_ADDR addr;
  		      int len, type;
  		      
@@ -913,7 +913,7 @@
  		      type = hw_write;
  		      if (b->owner->type == bp_read_watchpoint)
  			type = hw_read;
-@@ -2680,12 +2680,12 @@ mark_triggered_watchpoints (CORE_ADDR st
+@@ -2682,12 +2682,12 @@ mark_triggered_watchpoints (CORE_ADDR st
  	|| b->type == bp_read_watchpoint
  	|| b->type == bp_access_watchpoint)
        {
@@ -929,7 +929,7 @@
  		    
  		if (v == b->val_chain
  		    || (TYPE_CODE (vtype) != TYPE_CODE_STRUCT
-@@ -2693,11 +2693,11 @@ mark_triggered_watchpoints (CORE_ADDR st
+@@ -2695,11 +2695,11 @@ mark_triggered_watchpoints (CORE_ADDR st
  		  {
  		    CORE_ADDR vaddr;
  			
@@ -943,7 +943,7 @@
  		      b->watchpoint_triggered = 1;
  		  }
  	      }
-@@ -2867,12 +2867,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2869,12 +2869,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  		bs->stop = 0;
  		continue;
  	      }
@@ -959,7 +959,7 @@
  		    
  		    if (v == b->val_chain
  			|| (TYPE_CODE (vtype) != TYPE_CODE_STRUCT
-@@ -2880,11 +2880,11 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2882,11 +2882,11 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  		      {
  			CORE_ADDR vaddr;
  			
@@ -973,15 +973,15 @@
  			  must_check_value = 1;
  		      }
  		  }
-@@ -3931,6 +3931,7 @@ describe_other_breakpoints (CORE_ADDR pc
- 			       b->number,
+@@ -3937,6 +3937,7 @@ describe_other_breakpoints (CORE_ADDR pc
+ 	      printf_filtered ("%s%s ",
  			       ((b->enable_state == bp_disabled || 
  				 b->enable_state == bp_shlib_disabled || 
 +				 b->enable_state == bp_startup_disabled || 
  				 b->enable_state == bp_call_disabled) 
- 				? " (disabled)" 
+ 				? " (disabled)"
  				: b->enable_state == bp_permanent 
-@@ -4609,6 +4610,62 @@ re_enable_breakpoints_in_shlibs (void)
+@@ -4615,6 +4616,62 @@ re_enable_breakpoints_in_shlibs (void)
    }
  }
  
@@ -1044,7 +1044,7 @@
  static void
  solib_load_unload_1 (char *hookname, int tempflag, char *dll_pathname,
  		     char *cond_string, enum bptype bp_kind)
-@@ -6955,6 +7012,7 @@ delete_breakpoint (struct breakpoint *bp
+@@ -6961,6 +7018,7 @@ delete_breakpoint (struct breakpoint *bp
  	    && !b->loc->duplicate
  	    && b->enable_state != bp_disabled
  	    && b->enable_state != bp_shlib_disabled
@@ -1052,7 +1052,7 @@
  	    && !b->pending
  	    && b->enable_state != bp_call_disabled)
  	{
-@@ -7170,7 +7228,8 @@ breakpoint_re_set_one (void *bint)
+@@ -7176,7 +7234,8 @@ breakpoint_re_set_one (void *bint)
  	break;
  
        save_enable = b->enable_state;
@@ -1062,10 +1062,10 @@
          b->enable_state = bp_disabled;
        else
  	/* If resetting a shlib-disabled breakpoint, we don't want to
-Index: gdb-6.5/gdb/solib.c
+Index: gdb-6.6/gdb/solib.c
 ===================================================================
---- gdb-6.5.orig/gdb/solib.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/solib.c	2006-07-11 02:47:11.000000000 -0300
+--- gdb-6.6.orig/gdb/solib.c
++++ gdb-6.6/gdb/solib.c
 @@ -72,6 +72,8 @@ solib_ops (struct gdbarch *gdbarch)
  
  /* external data declarations */
@@ -1084,7 +1084,7 @@
  /*
  
     GLOBAL FUNCTION
-@@ -372,7 +376,6 @@ free_so (struct so_list *so)
+@@ -376,7 +380,6 @@ free_so (struct so_list *so)
    xfree (so);
  }
  
@@ -1092,7 +1092,7 @@
  /* Return address of first so_list entry in master shared object list.  */
  struct so_list *
  master_so_list (void)
-@@ -380,7 +383,6 @@ master_so_list (void)
+@@ -384,7 +387,6 @@ master_so_list (void)
    return so_list_head;
  }
  
@@ -1100,7 +1100,7 @@
  /* A small stub to get us past the arg-passing pinhole of catch_errors.  */
  
  static int
-@@ -392,15 +394,40 @@ symbol_add_stub (void *arg)
+@@ -396,15 +398,40 @@ symbol_add_stub (void *arg)
    /* Have we already loaded this shared object?  */
    ALL_OBJFILES (so->objfile)
      {
@@ -1144,7 +1144,7 @@
    free_section_addr_info (sap);
  
    return (1);
-@@ -523,6 +550,10 @@ update_solib_list (int from_tty, struct 
+@@ -532,6 +559,10 @@ update_solib_list (int from_tty, struct 
  	 the inferior's current list.  */
        while (i)
  	{
@@ -1155,7 +1155,7 @@
  	  if (! strcmp (gdb->so_original_name, i->so_original_name))
  	    break;
  
-@@ -576,28 +607,7 @@ update_solib_list (int from_tty, struct 
+@@ -585,28 +616,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)
  	{
@@ -1185,8 +1185,8 @@
  
  	  /* Notify any observer that the shared object has been
               loaded now that we've added it to GDB's tables.  */
-@@ -606,6 +616,41 @@ update_solib_list (int from_tty, struct 
-     }
+@@ -702,6 +712,41 @@ solib_add (char *pattern, int from_tty, 
+   }
  }
  
 +void
@@ -1225,9 +1225,9 @@
 +    }
 +}
  
- /* GLOBAL FUNCTION
+ /*
  
-@@ -978,4 +1023,12 @@ This takes precedence over the environme
+@@ -1006,4 +1051,12 @@ This takes precedence over the environme
  				     reload_shared_libraries,
  				     show_solib_search_path,
  				     &setlist, &showlist);
@@ -1240,10 +1240,10 @@
 +			   NULL, NULL,
 +			   &setdebuglist, &showdebuglist);
  }
-Index: gdb-6.5/gdb/elfread.c
+Index: gdb-6.6/gdb/elfread.c
 ===================================================================
---- gdb-6.5.orig/gdb/elfread.c	2006-07-11 02:47:06.000000000 -0300
-+++ gdb-6.5/gdb/elfread.c	2006-07-11 02:47:11.000000000 -0300
+--- gdb-6.6.orig/gdb/elfread.c
++++ gdb-6.6/gdb/elfread.c
 @@ -556,7 +556,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

gdb-6.3-security-errata-20050610.patch:
 Makefile.in                       |    2 
 cli/cli-cmds.c                    |   22 ++++++++
 main.c                            |    4 -
 testsuite/gdb.base/gdbinit.exp    |   98 ++++++++++++++++++++++++++++++++++++++
 testsuite/gdb.base/gdbinit.sample |    1 
 5 files changed, 123 insertions(+), 4 deletions(-)

Index: gdb-6.3-security-errata-20050610.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-security-errata-20050610.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-security-errata-20050610.patch	11 Jul 2006 06:33:02 -0000	1.3
+++ gdb-6.3-security-errata-20050610.patch	21 Jan 2007 01:53:01 -0000	1.4
@@ -16,10 +16,10 @@
         (source_command): Update documentation.  Check permissions if
         FROM_TTY is -1.
 
-Index: gdb-6.5/gdb/cli/cli-cmds.c
+Index: gdb-6.6/gdb/cli/cli-cmds.c
 ===================================================================
---- gdb-6.5.orig/gdb/cli/cli-cmds.c	2006-07-11 03:22:45.000000000 -0300
-+++ gdb-6.5/gdb/cli/cli-cmds.c	2006-07-11 03:26:36.000000000 -0300
+--- gdb-6.6.orig/gdb/cli/cli-cmds.c
++++ gdb-6.6/gdb/cli/cli-cmds.c
 @@ -38,6 +38,7 @@
  #include "objfiles.h"
  #include "source.h"
@@ -28,7 +28,7 @@
  
  #include "ui-out.h"
  
-@@ -453,12 +454,31 @@ source_command (char *args, int from_tty
+@@ -461,12 +462,31 @@ source_script (char *file, int from_tty)
  
    if (fd == -1)
      {
@@ -61,10 +61,10 @@
    stream = fdopen (fd, FOPEN_RT);
    script_from_file (stream, file);
  
-Index: gdb-6.5/gdb/testsuite/gdb.base/gdbinit.exp
+Index: gdb-6.6/gdb/testsuite/gdb.base/gdbinit.exp
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.base/gdbinit.exp	2006-07-11 03:22:48.000000000 -0300
+--- /dev/null
++++ gdb-6.6/gdb/testsuite/gdb.base/gdbinit.exp
 @@ -0,0 +1,98 @@
 +#   Copyright 2005
 +#   Free Software Foundation, Inc.
@@ -164,39 +164,39 @@
 +}
 +
 +remote_exec build "rm .gdbinit"
-Index: gdb-6.5/gdb/testsuite/gdb.base/gdbinit.sample
+Index: gdb-6.6/gdb/testsuite/gdb.base/gdbinit.sample
 ===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.base/gdbinit.sample	2006-07-11 03:22:48.000000000 -0300
+--- /dev/null
++++ gdb-6.6/gdb/testsuite/gdb.base/gdbinit.sample
 @@ -0,0 +1 @@
 +echo "\nin gdbinit"
-Index: gdb-6.5/gdb/main.c
+Index: gdb-6.6/gdb/main.c
 ===================================================================
---- gdb-6.5.orig/gdb/main.c	2006-07-11 03:22:45.000000000 -0300
-+++ gdb-6.5/gdb/main.c	2006-07-11 03:27:03.000000000 -0300
-@@ -643,7 +643,7 @@ extern int gdbtk_test (char *);
+--- gdb-6.6.orig/gdb/main.c
++++ gdb-6.6/gdb/main.c
+@@ -644,7 +644,7 @@ extern int gdbtk_test (char *);
  
        if (!inhibit_gdbinit)
  	{
--	  catch_command_errors (source_command, homeinit, 0, RETURN_MASK_ALL);
-+	  catch_command_errors (source_command, homeinit, -1, RETURN_MASK_ALL);
+-	  catch_command_errors (source_script, homeinit, 0, RETURN_MASK_ALL);
++	  catch_command_errors (source_script, homeinit, -1, RETURN_MASK_ALL);
  	}
  
        /* Do stats; no need to do them elsewhere since we'll only
-@@ -730,7 +730,7 @@ extern int gdbtk_test (char *);
+@@ -722,7 +722,7 @@ extern int gdbtk_test (char *);
        || memcmp ((char *) &homebuf, (char *) &cwdbuf, sizeof (struct stat)))
      if (!inhibit_gdbinit)
        {
--	catch_command_errors (source_command, gdbinit, 0, RETURN_MASK_ALL);
-+	catch_command_errors (source_command, gdbinit, -1, RETURN_MASK_ALL);
+-	catch_command_errors (source_script, gdbinit, 0, RETURN_MASK_ALL);
++	catch_command_errors (source_script, gdbinit, -1, RETURN_MASK_ALL);
        }
  
    for (i = 0; i < ncmd; i++)
-Index: gdb-6.5/gdb/Makefile.in
+Index: gdb-6.6/gdb/Makefile.in
 ===================================================================
---- gdb-6.5.orig/gdb/Makefile.in	2006-07-11 03:22:45.000000000 -0300
-+++ gdb-6.5/gdb/Makefile.in	2006-07-11 03:22:48.000000000 -0300
-@@ -2859,7 +2859,7 @@ cli-cmds.o: $(srcdir)/cli/cli-cmds.c $(d
+--- gdb-6.6.orig/gdb/Makefile.in
++++ gdb-6.6/gdb/Makefile.in
+@@ -2927,7 +2927,7 @@ cli-cmds.o: $(srcdir)/cli/cli-cmds.c $(d
  	$(expression_h) $(frame_h) $(value_h) $(language_h) $(filenames_h) \
  	$(objfiles_h) $(source_h) $(disasm_h) $(ui_out_h) $(top_h) \
  	$(cli_decode_h) $(cli_script_h) $(cli_setshow_h) $(cli_cmds_h) \

gdb-6.3-test-sepcrc-20050402.patch:
 sepdebug.exp |   37 +++++++++++++++++++++++++++++++++++++
 sepdebug2.c  |    5 +++++
 2 files changed, 42 insertions(+)

Index: gdb-6.3-test-sepcrc-20050402.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-test-sepcrc-20050402.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-test-sepcrc-20050402.patch	2 Apr 2005 22:38:09 -0000	1.1
+++ gdb-6.3-test-sepcrc-20050402.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -1,13 +1,8 @@
-Index: ./gdb/testsuite/ChangeLog
-2005-04-02  Andrew Cagney  <cagney at gnu.org>
-
-	* gdb.base/sepdebug.exp: Check that things fail when the debug
-	info is corrupt.
-	* gdb.base/sepdebug2.c (main): New file.
-
---- ../gdb-6.3/./gdb/testsuite/gdb.base/sepdebug.exp	2004-01-14 10:09:37.000000000 -0500
-+++ ./gdb/testsuite/gdb.base/sepdebug.exp	2005-04-02 15:57:17.000000000 -0500
-@@ -985,3 +985,35 @@
+Index: gdb-6.6/gdb/testsuite/gdb.base/sepdebug.exp
+===================================================================
+--- gdb-6.6.orig/gdb/testsuite/gdb.base/sepdebug.exp	2006-10-17 22:17:45.000000000 +0200
++++ gdb-6.6/gdb/testsuite/gdb.base/sepdebug.exp	2007-01-20 18:39:26.000000000 +0100
+@@ -953,3 +953,40 @@ if [istarget "*-*-vxworks*"] {
      send_gdb "set args main\n"
      gdb_expect -re ".*$gdb_prompt $" {}
  }
@@ -33,6 +28,11 @@
 +}
 +remote_exec build "cp $corrupt_debug_file ${existing_binfile}.debug"
 +
++gdb_exit
++gdb_start
++gdb_reinitialize_dir $srcdir/$subdir
++gdb_load ${binfile}
++
 +set test  "A corrupt debug file gets a warning"
 +gdb_test_multiple "file $existing_binfile" "$test" {
 +    -re "warning:.*mismatch.*" {
@@ -43,8 +43,10 @@
 +	exp_continue
 +    }
 +}
---- /dev/null	2005-04-02 11:30:32.604931736 -0500
-+++ ./gdb/testsuite/gdb.base/sepdebug2.c	2005-04-02 13:09:31.000000000 -0500
+Index: gdb-6.6/gdb/testsuite/gdb.base/sepdebug2.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.6/gdb/testsuite/gdb.base/sepdebug2.c	2007-01-20 18:41:35.000000000 +0100
 @@ -0,0 +1,5 @@
 +int
 +main (int argc, char *argv[], char *envp[])

gdb-6.3-warnings-20050317.patch:
 configure                      |    2 ++
 configure.ac                   |    2 ++
 cp-valprint.c                  |    4 ++--
 doublest.c                     |   13 ++++---------
 dwarf2expr.c                   |    2 ++
 dwarf2read.c                   |   14 +++++++++-----
 f-exp.y                        |    2 ++
 gdb-events.c                   |    2 ++
 linespec.c                     |    2 +-
 macroscope.c                   |    9 ++++-----
 mi/mi-cmd-break.c              |    4 ++--
 mi/mi-cmd-disas.c              |    2 +-
 mi/mi-cmd-env.c                |    4 ++--
 mi/mi-getopt.c                 |    2 +-
 mi/mi-main.c                   |    4 ++--
 p-valprint.c                   |    4 ++--
 remote-fileio.c                |   26 +++++++++++++-------------
 remote.c                       |    4 ++--
 s390-tdep.c                    |    6 ++++++
 source.c                       |    4 ++--
 stabsread.c                    |    3 ++-
 symfile.c                      |    2 ++
 target.c                       |    3 +++
 testsuite/gdb.base/move-dir.h  |    2 +-
 testsuite/gdb.base/sigrepeat.c |    1 +
 tui/tui-layout.c               |    8 ++++----
 varobj.c                       |   16 ++++++----------
 27 files changed, 82 insertions(+), 65 deletions(-)

Index: gdb-6.3-warnings-20050317.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.3-warnings-20050317.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-warnings-20050317.patch	11 Jul 2006 18:04:22 -0000	1.3
+++ gdb-6.3-warnings-20050317.patch	21 Jan 2007 01:53:01 -0000	1.4
@@ -1,8 +1,8 @@
-Index: gdb-6.5/gdb/configure
+Index: gdb-6.6/gdb/configure
 ===================================================================
---- gdb-6.5.orig/gdb/configure	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/configure	2006-07-11 15:01:23.000000000 -0300
-@@ -20125,7 +20125,8 @@ fi
+--- gdb-6.6.orig/gdb/configure
++++ gdb-6.6/gdb/configure
+@@ -20991,7 +20991,8 @@ fi
  # gdb/doc/gdbint.texinfo.
  build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
  -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral \
@@ -12,10 +12,10 @@
  
  # GCC supports -Wuninitialized only with -O or -On, n != 0.
  if test x${CFLAGS+set} = xset; then
-Index: gdb-6.5/gdb/mi/mi-cmd-env.c
+Index: gdb-6.6/gdb/mi/mi-cmd-env.c
 ===================================================================
---- gdb-6.5.orig/gdb/mi/mi-cmd-env.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/mi/mi-cmd-env.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/mi/mi-cmd-env.c
++++ gdb-6.6/gdb/mi/mi-cmd-env.c
 @@ -126,7 +126,7 @@ mi_cmd_env_path (char *command, char **a
    static struct mi_opt opts[] =
    {
@@ -34,10 +34,10 @@
    };
  
    dont_repeat ();
-Index: gdb-6.5/gdb/mi/mi-getopt.c
+Index: gdb-6.6/gdb/mi/mi-getopt.c
 ===================================================================
---- gdb-6.5.orig/gdb/mi/mi-getopt.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/mi/mi-getopt.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/mi/mi-getopt.c
++++ gdb-6.6/gdb/mi/mi-getopt.c
 @@ -82,7 +82,7 @@ mi_valid_noargs (const char *prefix, int
    char *optarg;
    static struct mi_opt opts[] =
@@ -47,10 +47,10 @@
    };
  
    if (mi_getopt (prefix, argc, argv, opts, &optind, &optarg) == -1)
-Index: gdb-6.5/gdb/mi/mi-cmd-break.c
+Index: gdb-6.6/gdb/mi/mi-cmd-break.c
 ===================================================================
---- gdb-6.5.orig/gdb/mi/mi-cmd-break.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/mi/mi-cmd-break.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/mi/mi-cmd-break.c
++++ gdb-6.6/gdb/mi/mi-cmd-break.c
 @@ -90,7 +90,7 @@ mi_cmd_break_insert (char *command, char
      {"c", CONDITION_OPT, 1},
      {"i", IGNORE_COUNT_OPT, 1},
@@ -69,10 +69,10 @@
    };
  
    /* Parse arguments. */
-Index: gdb-6.5/gdb/mi/mi-cmd-disas.c
+Index: gdb-6.6/gdb/mi/mi-cmd-disas.c
 ===================================================================
---- gdb-6.5.orig/gdb/mi/mi-cmd-disas.c	2006-07-11 15:01:22.000000000 -0300
-+++ gdb-6.5/gdb/mi/mi-cmd-disas.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/mi/mi-cmd-disas.c
++++ gdb-6.6/gdb/mi/mi-cmd-disas.c
 @@ -84,7 +84,7 @@ mi_cmd_disassemble (char *command, char 
      {"n", NUM_OPT, 1},
      {"s", START_OPT, 1},
@@ -82,10 +82,10 @@
    };
  
    /* Get the options with their arguments. Keep track of what we
-Index: gdb-6.5/gdb/mi/mi-main.c
+Index: gdb-6.6/gdb/mi/mi-main.c
 ===================================================================
---- gdb-6.5.orig/gdb/mi/mi-main.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/mi/mi-main.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/mi/mi-main.c
++++ gdb-6.6/gdb/mi/mi-main.c
 @@ -773,7 +773,7 @@ mi_cmd_data_read_memory (char *command, 
    static struct mi_opt opts[] =
    {
@@ -95,7 +95,7 @@
    };
  
    while (1)
-@@ -975,7 +975,7 @@ mi_cmd_data_write_memory (char *command,
+@@ -973,7 +973,7 @@ mi_cmd_data_write_memory (char *command,
    static struct mi_opt opts[] =
    {
      {"o", OFFSET_OPT, 1},
@@ -104,10 +104,10 @@
    };
  
    while (1)
-Index: gdb-6.5/gdb/p-valprint.c
+Index: gdb-6.6/gdb/p-valprint.c
 ===================================================================
---- gdb-6.5.orig/gdb/p-valprint.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/p-valprint.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/p-valprint.c
++++ gdb-6.6/gdb/p-valprint.c
 @@ -753,7 +753,7 @@ pascal_object_print_value_fields (struct
  				  int dont_print_statmem)
  {
@@ -126,10 +126,10 @@
    struct type **last_dont_print
    = (struct type **) obstack_next_free (&dont_print_vb_obstack);
    int i, n_baseclasses = TYPE_N_BASECLASSES (type);
-Index: gdb-6.5/gdb/cp-valprint.c
+Index: gdb-6.6/gdb/cp-valprint.c
 ===================================================================
---- gdb-6.5.orig/gdb/cp-valprint.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/cp-valprint.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/cp-valprint.c
++++ gdb-6.6/gdb/cp-valprint.c
 @@ -265,7 +265,7 @@ cp_print_value_fields (struct type *type
  		       struct type **dont_print_vb,int dont_print_statmem)
  {
@@ -148,10 +148,10 @@
    struct type **last_dont_print
      = (struct type **) obstack_next_free (&dont_print_vb_obstack);
    int i, n_baseclasses = TYPE_N_BASECLASSES (type);
-Index: gdb-6.5/gdb/tui/tui-layout.c
+Index: gdb-6.6/gdb/tui/tui-layout.c
 ===================================================================
---- gdb-6.5.orig/gdb/tui/tui-layout.c	2006-07-11 15:01:22.000000000 -0300
-+++ gdb-6.5/gdb/tui/tui-layout.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/tui/tui-layout.c
++++ gdb-6.6/gdb/tui/tui-layout.c
 @@ -755,7 +755,7 @@ show_source_disasm_command (void)
  	  if (TUI_DISASM_WIN == NULL)
  	    {
@@ -188,20 +188,20 @@
  			   LOCATOR_WIN,
  			   2 /* 1 */ ,
  			   tui_term_width (),
-Index: gdb-6.5/gdb/testsuite/gdb.base/move-dir.h
+Index: gdb-6.6/gdb/testsuite/gdb.base/move-dir.h
 ===================================================================
---- gdb-6.5.orig/gdb/testsuite/gdb.base/move-dir.h	2006-07-11 15:01:23.000000000 -0300
-+++ gdb-6.5/gdb/testsuite/gdb.base/move-dir.h	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/testsuite/gdb.base/move-dir.h
++++ gdb-6.6/gdb/testsuite/gdb.base/move-dir.h
 @@ -1,4 +1,4 @@
 -#include <stdlib.h>
 +#include <stdio.h>
  
  void other() {
    const char* ostring = "other";
-Index: gdb-6.5/gdb/testsuite/gdb.base/sigrepeat.c
+Index: gdb-6.6/gdb/testsuite/gdb.base/sigrepeat.c
 ===================================================================
---- gdb-6.5.orig/gdb/testsuite/gdb.base/sigrepeat.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/testsuite/gdb.base/sigrepeat.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/testsuite/gdb.base/sigrepeat.c
++++ gdb-6.6/gdb/testsuite/gdb.base/sigrepeat.c
 @@ -22,6 +22,7 @@
  #include <stdlib.h>
  #include <string.h>
@@ -210,10 +210,10 @@
  #include <sys/time.h>
  
  static volatile int done[2];
-Index: gdb-6.5/gdb/s390-tdep.c
+Index: gdb-6.6/gdb/s390-tdep.c
 ===================================================================
---- gdb-6.5.orig/gdb/s390-tdep.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/s390-tdep.c	2006-07-11 15:02:37.000000000 -0300
+--- gdb-6.6.orig/gdb/s390-tdep.c
++++ gdb-6.6/gdb/s390-tdep.c
 @@ -2277,6 +2277,9 @@ s390_return_value (struct gdbarch *gdbar
  	case RETURN_VALUE_STRUCT_CONVENTION:
  	  error (_("Cannot set function return value."));
@@ -234,27 +234,27 @@
  	}
      }
  
-Index: gdb-6.5/gdb/remote.c
+Index: gdb-6.6/gdb/remote.c
 ===================================================================
---- gdb-6.5.orig/gdb/remote.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/remote.c	2006-07-11 15:02:32.000000000 -0300
-@@ -2523,10 +2523,10 @@ cleanup_sigint_signal_handler (void *dum
+--- gdb-6.6.orig/gdb/remote.c
++++ gdb-6.6/gdb/remote.c
+@@ -2843,10 +2843,10 @@ cleanup_sigint_signal_handler (void *dum
  {
    signal (SIGINT, handle_sigint);
    if (sigint_remote_twice_token)
--    delete_async_signal_handler ((struct async_signal_handler **) 
+-    delete_async_signal_handler ((struct async_signal_handler **)
 +    delete_async_signal_handler ((struct async_signal_handler **) (char *)
  				 &sigint_remote_twice_token);
    if (sigint_remote_token)
--    delete_async_signal_handler ((struct async_signal_handler **) 
+-    delete_async_signal_handler ((struct async_signal_handler **)
 +    delete_async_signal_handler ((struct async_signal_handler **) (char *)
  				 &sigint_remote_token);
  }
  
-Index: gdb-6.5/gdb/f-exp.y
+Index: gdb-6.6/gdb/f-exp.y
 ===================================================================
---- gdb-6.5.orig/gdb/f-exp.y	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/f-exp.y	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/f-exp.y
++++ gdb-6.6/gdb/f-exp.y
 @@ -567,6 +567,8 @@ ptype	:	typebase
  		      case tp_function:
  			follow_type = lookup_function_type (follow_type);
@@ -264,11 +264,11 @@
  		      }
  		  $$ = follow_type;
  		}
-Index: gdb-6.5/gdb/remote-fileio.c
+Index: gdb-6.6/gdb/remote-fileio.c
 ===================================================================
---- gdb-6.5.orig/gdb/remote-fileio.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/remote-fileio.c	2006-07-11 15:01:23.000000000 -0300
-@@ -1317,19 +1317,19 @@ static struct {
+--- gdb-6.6.orig/gdb/remote-fileio.c
++++ gdb-6.6/gdb/remote-fileio.c
+@@ -1332,19 +1332,19 @@ static struct {
    char *name;
    void (*func)(char *);
  } remote_fio_func_map[] = {
@@ -301,11 +301,11 @@
  };
  
  static int
-Index: gdb-6.5/gdb/source.c
+Index: gdb-6.6/gdb/source.c
 ===================================================================
---- gdb-6.5.orig/gdb/source.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/source.c	2006-07-11 15:01:23.000000000 -0300
-@@ -160,7 +160,7 @@ get_current_source_symtab_and_line (void
+--- gdb-6.6.orig/gdb/source.c
++++ gdb-6.6/gdb/source.c
+@@ -172,7 +172,7 @@ get_current_source_symtab_and_line (void
  void
  set_default_source_symtab_and_line (void)
  {
@@ -314,7 +314,7 @@
  
    if (!have_full_symbols () && !have_partial_symbols ())
      error (_("No symbol table is loaded.  Use the \"file\" command."));
-@@ -1314,7 +1314,7 @@ static void
+@@ -1428,7 +1428,7 @@ static void
  line_info (char *arg, int from_tty)
  {
    struct symtabs_and_lines sals;
@@ -323,11 +323,11 @@
    CORE_ADDR start_pc, end_pc;
    int i;
  
-Index: gdb-6.5/gdb/symfile.c
+Index: gdb-6.6/gdb/symfile.c
 ===================================================================
---- gdb-6.5.orig/gdb/symfile.c	2006-07-11 15:01:22.000000000 -0300
-+++ gdb-6.5/gdb/symfile.c	2006-07-11 15:02:34.000000000 -0300
-@@ -2877,6 +2877,8 @@ add_psymbol_with_dem_name_to_list (char 
+--- gdb-6.6.orig/gdb/symfile.c
++++ gdb-6.6/gdb/symfile.c
+@@ -2933,6 +2933,8 @@ add_psymbol_with_dem_name_to_list (char 
  	deprecated_bcache (buf, dem_namelength + 1, objfile->psymbol_cache);
        break;
        /* FIXME What should be done for the default case? Ignoring for now. */
@@ -336,10 +336,10 @@
      }
  
    /* val and coreaddr are mutually exclusive, one of them *will* be zero */
-Index: gdb-6.5/gdb/linespec.c
+Index: gdb-6.6/gdb/linespec.c
 ===================================================================
---- gdb-6.5.orig/gdb/linespec.c	2006-07-11 15:01:23.000000000 -0300
-+++ gdb-6.5/gdb/linespec.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/linespec.c
++++ gdb-6.6/gdb/linespec.c
 @@ -1631,7 +1631,7 @@ static struct symtabs_and_lines
  find_method (int funfirstline, char ***canonical, char *saved_arg,
  	     char *copy, struct type *t, struct symbol *sym_class)
@@ -349,10 +349,10 @@
    struct symbol *sym = 0;
    int i1;	/*  Counter for the symbol array.  */
    struct symbol **sym_arr =  alloca (total_number_of_methods (t)
-Index: gdb-6.5/gdb/macroscope.c
+Index: gdb-6.6/gdb/macroscope.c
 ===================================================================
---- gdb-6.5.orig/gdb/macroscope.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/macroscope.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/macroscope.c
++++ gdb-6.6/gdb/macroscope.c
 @@ -33,7 +33,7 @@
  struct macro_scope *
  sal_macro_scope (struct symtab_and_line sal)
@@ -390,23 +390,13 @@
    struct macro_scope *ms;
  
    /* If there's a selected frame, use its PC.  */ 
-Index: gdb-6.5/gdb/target.c
+Index: gdb-6.6/gdb/target.c
 ===================================================================
---- gdb-6.5.orig/gdb/target.c	2006-07-11 15:01:22.000000000 -0300
-+++ gdb-6.5/gdb/target.c	2006-07-11 15:02:33.000000000 -0300
-@@ -1142,6 +1142,9 @@ target_xfer_memory (CORE_ADDR memaddr, g
- 	  if (!write)
- 	    return EIO;
- 	  break;
-+
-+	default:
-+	  break;
- 	}
- 
-       while (reg_len > 0)
-@@ -1220,6 +1223,9 @@ target_xfer_memory_partial (CORE_ADDR me
- 	  return -1;
- 	}
+--- gdb-6.6.orig/gdb/target.c
++++ gdb-6.6/gdb/target.c
+@@ -1045,6 +1045,9 @@ memory_xfer_partial (struct target_ops *
+       if (writebuf != NULL)
+ 	error (_("Writing to flash memory forbidden in this context"));
        break;
 +
 +    default:
@@ -414,10 +404,10 @@
      }
  
    if (region->attrib.cache)
-Index: gdb-6.5/gdb/gdb-events.c
+Index: gdb-6.6/gdb/gdb-events.c
 ===================================================================
---- gdb-6.5.orig/gdb/gdb-events.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/gdb-events.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/gdb-events.c
++++ gdb-6.6/gdb/gdb-events.c
 @@ -321,6 +321,8 @@ gdb_events_deliver (struct gdb_events *v
  	case architecture_changed:
  	  vector->architecture_changed ();
@@ -427,11 +417,11 @@
  	}
        delivering_events = event->next;
        xfree (event);
-Index: gdb-6.5/gdb/dwarf2read.c
+Index: gdb-6.6/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.5.orig/gdb/dwarf2read.c	2006-07-11 15:01:23.000000000 -0300
-+++ gdb-6.5/gdb/dwarf2read.c	2006-07-11 15:02:33.000000000 -0300
-@@ -9179,6 +9179,7 @@ dwarf_decode_macros (struct line_header 
+--- gdb-6.6.orig/gdb/dwarf2read.c
++++ gdb-6.6/gdb/dwarf2read.c
+@@ -9307,6 +9307,7 @@ dwarf_decode_macros (struct line_header 
    for (;;)
      {
        enum dwarf_macinfo_record_type macinfo_type;
@@ -439,7 +429,7 @@
  
        /* Do we at least have room for a macinfo type byte?  */
        if (mac_ptr >= mac_end)
-@@ -9190,13 +9191,16 @@ dwarf_decode_macros (struct line_header 
+@@ -9318,13 +9319,16 @@ dwarf_decode_macros (struct line_header 
        macinfo_type = read_1_byte (abfd, mac_ptr);
        mac_ptr++;
  
@@ -461,10 +451,10 @@
          case DW_MACINFO_define:
          case DW_MACINFO_undef:
            {
-Index: gdb-6.5/gdb/stabsread.c
+Index: gdb-6.6/gdb/stabsread.c
 ===================================================================
---- gdb-6.5.orig/gdb/stabsread.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/stabsread.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/stabsread.c
++++ gdb-6.6/gdb/stabsread.c
 @@ -1794,7 +1794,8 @@ again:
  	  struct type *domain = read_type (pp, objfile);
  	  struct type *return_type;
@@ -475,10 +465,10 @@
  
  	  if (**pp != ',')
  	    /* Invalid member type data format.  */
-Index: gdb-6.5/gdb/dwarf2expr.c
+Index: gdb-6.6/gdb/dwarf2expr.c
 ===================================================================
---- gdb-6.5.orig/gdb/dwarf2expr.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/dwarf2expr.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/dwarf2expr.c
++++ gdb-6.6/gdb/dwarf2expr.c
 @@ -559,6 +559,8 @@ execute_stack_op (struct dwarf_expr_cont
  	      op_ptr = read_uleb128 (op_ptr, op_end, &reg);
  	      result += reg;
@@ -488,10 +478,10 @@
  	    }
  	  break;
  
-Index: gdb-6.5/gdb/varobj.c
+Index: gdb-6.6/gdb/varobj.c
 ===================================================================
---- gdb-6.5.orig/gdb/varobj.c	2006-07-11 15:01:22.000000000 -0300
-+++ gdb-6.5/gdb/varobj.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/varobj.c
++++ gdb-6.6/gdb/varobj.c
 @@ -325,10 +325,9 @@ struct language_specific
  
  /* Array of known source language routines. */
@@ -544,11 +534,11 @@
  
        /* Set ourselves as our root */
        var->root->rootvar = var;
-Index: gdb-6.5/gdb/configure.ac
+Index: gdb-6.6/gdb/configure.ac
 ===================================================================
---- gdb-6.5.orig/gdb/configure.ac	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/configure.ac	2006-07-11 15:01:23.000000000 -0300
-@@ -1133,7 +1133,8 @@ fi
+--- gdb-6.6.orig/gdb/configure.ac
++++ gdb-6.6/gdb/configure.ac
+@@ -1112,7 +1112,8 @@ fi
  # gdb/doc/gdbint.texinfo.
  build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
  -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral \
@@ -558,10 +548,10 @@
  
  # GCC supports -Wuninitialized only with -O or -On, n != 0.
  if test x${CFLAGS+set} = xset; then
-Index: gdb-6.5/gdb/doublest.c
+Index: gdb-6.6/gdb/doublest.c
 ===================================================================
---- gdb-6.5.orig/gdb/doublest.c	2006-07-11 15:00:08.000000000 -0300
-+++ gdb-6.5/gdb/doublest.c	2006-07-11 15:01:23.000000000 -0300
+--- gdb-6.6.orig/gdb/doublest.c
++++ gdb-6.6/gdb/doublest.c
 @@ -94,15 +94,10 @@ get_field (const bfd_byte *data, enum fl
      {
        result |= (unsigned long)*(data + cur_byte) << cur_bitshift;

gdb-6.5-bz109921-DW_AT_decl_file-fix.patch:
 buildsym.c   |   86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 buildsym.h   |    4 ++
 dwarf2read.c |   23 ++++++++++++---
 symtab.c     |    8 ++++-
 symtab.h     |   14 +++++++++
 5 files changed, 126 insertions(+), 9 deletions(-)

Index: gdb-6.5-bz109921-DW_AT_decl_file-fix.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.5-bz109921-DW_AT_decl_file-fix.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz109921-DW_AT_decl_file-fix.patch	9 Jan 2007 11:35:44 -0000	1.1
+++ gdb-6.5-bz109921-DW_AT_decl_file-fix.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -21,9 +21,11 @@
 	(SYMBOL_FILE_INDEX, SYMBOL_FILE_SYMTAB): New macros.
 
 
---- ./gdb/buildsym.c	2005-12-17 22:33:59.000000000 +0000
-+++ ./gdb/buildsym.c	2007-01-09 08:30:38.000000000 +0000
-@@ -535,7 +535,7 @@ make_blockvector (struct objfile *objfil
+Index: gdb-6.6/gdb/buildsym.c
+===================================================================
+--- gdb-6.6.orig/gdb/buildsym.c	2006-08-25 18:32:32.000000000 +0200
++++ gdb-6.6/gdb/buildsym.c	2007-01-20 13:59:48.000000000 +0100
+@@ -540,7 +540,7 @@ make_blockvector (struct objfile *objfil
     the directory in which it resides (or NULL if not known).  */
  
  void
@@ -32,7 +34,7 @@
  {
    struct subfile *subfile;
  
-@@ -547,6 +547,17 @@ start_subfile (char *name, char *dirname
+@@ -552,6 +552,17 @@ start_subfile (char *name, char *dirname
        if (FILENAME_CMP (subfile->name, name) == 0)
  	{
  	  current_subfile = subfile;
@@ -50,7 +52,7 @@
  	  return;
  	}
      }
-@@ -562,6 +573,7 @@ start_subfile (char *name, char *dirname
+@@ -567,6 +578,7 @@ start_subfile (char *name, char *dirname
    current_subfile = subfile;
  
    /* Save its name and compilation directory name */
@@ -58,7 +60,7 @@
    subfile->name = (name == NULL) ? NULL : savestring (name, strlen (name));
    subfile->dirname =
      (dirname == NULL) ? NULL : savestring (dirname, strlen (dirname));
-@@ -617,6 +629,13 @@ start_subfile (char *name, char *dirname
+@@ -622,6 +634,13 @@ start_subfile (char *name, char *dirname
      }
  }
  
@@ -72,7 +74,7 @@
  /* For stabs readers, the first N_SO symbol is assumed to be the
     source file name, and the subfile struct is initialized using that
     assumption.  If another N_SO symbol is later seen, immediately
-@@ -816,9 +835,12 @@ end_symtab (CORE_ADDR end_addr, struct o
+@@ -821,9 +840,12 @@ end_symtab (CORE_ADDR end_addr, struct o
  {
    struct symtab *symtab = NULL;
    struct blockvector *blockvector;
@@ -86,7 +88,7 @@
  
    /* Finish the lexical context of the last function in the file; pop
       the context stack.  */
-@@ -916,6 +938,18 @@ end_symtab (CORE_ADDR end_addr, struct o
+@@ -921,6 +943,18 @@ end_symtab (CORE_ADDR end_addr, struct o
  #endif
    PROCESS_LINENUMBER_HOOK ();	/* Needed for xcoff. */
  
@@ -105,7 +107,7 @@
    /* Now create the symtab objects proper, one for each subfile.  */
    /* (The main file is the last one on the chain.)  */
  
-@@ -976,6 +1010,16 @@ end_symtab (CORE_ADDR end_addr, struct o
+@@ -981,6 +1015,16 @@ end_symtab (CORE_ADDR end_addr, struct o
  			       strlen (subfile->dirname) + 1);
  	      strcpy (symtab->dirname, subfile->dirname);
  	    }
@@ -122,7 +124,7 @@
  	  else
  	    {
  	      symtab->dirname = NULL;
-@@ -1004,6 +1048,13 @@ end_symtab (CORE_ADDR end_addr, struct o
+@@ -1009,6 +1053,13 @@ end_symtab (CORE_ADDR end_addr, struct o
  	     but the main file.  */
  
  	  symtab->primary = 0;
@@ -136,7 +138,7 @@
  	}
        if (subfile->name != NULL)
  	{
-@@ -1032,9 +1083,40 @@ end_symtab (CORE_ADDR end_addr, struct o
+@@ -1037,9 +1088,40 @@ end_symtab (CORE_ADDR end_addr, struct o
        symtab->primary = 1;
      }
  
@@ -177,8 +179,10 @@
  
    return symtab;
  }
---- ./gdb/buildsym.h	2005-12-17 22:33:59.000000000 +0000
-+++ ./gdb/buildsym.h	2007-01-09 08:17:17.000000000 +0000
+Index: gdb-6.6/gdb/buildsym.h
+===================================================================
+--- gdb-6.6.orig/gdb/buildsym.h	2005-12-17 23:33:59.000000000 +0100
++++ gdb-6.6/gdb/buildsym.h	2007-01-20 13:59:48.000000000 +0100
 @@ -63,6 +63,7 @@ EXTERN CORE_ADDR last_source_start_addr;
  struct subfile
    {
@@ -197,9 +201,11 @@
  extern void start_subfile (char *name, char *dirname);
  
  extern void patch_subfile_names (struct subfile *subfile, char *name);
---- ./gdb/dwarf2read.c	2007-01-08 22:28:24.000000000 +0000
-+++ ./gdb/dwarf2read.c	2007-01-09 08:58:41.000000000 +0000
-@@ -847,7 +847,7 @@ static struct line_header *(dwarf_decode
+Index: gdb-6.6/gdb/dwarf2read.c
+===================================================================
+--- gdb-6.6.orig/gdb/dwarf2read.c	2007-01-20 06:43:04.000000000 +0100
++++ gdb-6.6/gdb/dwarf2read.c	2007-01-20 14:00:12.000000000 +0100
+@@ -853,7 +853,7 @@ static struct line_header *(dwarf_decode
  static void dwarf_decode_lines (struct line_header *, char *, bfd *,
  				struct dwarf2_cu *, struct partial_symtab *);
  
@@ -208,7 +214,7 @@
  
  static struct symbol *new_symbol (struct die_info *, struct type *,
  				  struct dwarf2_cu *);
-@@ -6321,6 +6321,7 @@ add_file_name (struct line_header *lh,
+@@ -6428,6 +6428,7 @@ add_file_name (struct line_header *lh,
                 unsigned int length)
  {
    struct file_entry *fe;
@@ -216,7 +222,7 @@
  
    /* Grow the array if necessary.  */
    if (lh->file_names_size == 0)
-@@ -6343,6 +6344,10 @@ add_file_name (struct line_header *lh,
+@@ -6450,6 +6451,10 @@ add_file_name (struct line_header *lh,
    fe->mod_time = mod_time;
    fe->length = length;
    fe->included_p = 0;
@@ -227,7 +233,7 @@
  }
   
  
-@@ -6560,7 +6565,7 @@ dwarf_decode_lines (struct line_header *
+@@ -6668,7 +6673,7 @@ dwarf_decode_lines (struct line_header *
            if (fe->dir_index)
              dir = lh->include_dirs[fe->dir_index - 1];
  
@@ -236,16 +242,16 @@
  	}
  
        /* Decode the table.  */
-@@ -6661,7 +6666,7 @@ dwarf_decode_lines (struct line_header *
-                   dir = lh->include_dirs[fe->dir_index - 1];
- 
+@@ -6785,7 +6790,7 @@ dwarf_decode_lines (struct line_header *
                  if (!decode_for_pst_p)
--                  dwarf2_start_subfile (fe->name, dir, comp_dir);
-+                  dwarf2_start_subfile (fe->name, dir, comp_dir, file);
+ 		  {
+ 		    last_subfile = current_subfile;
+-		    dwarf2_start_subfile (fe->name, dir, comp_dir);
++		    dwarf2_start_subfile (fe->name, dir, comp_dir, file);
+ 		  }
                }
  	      break;
- 	    case DW_LNS_set_column:
-@@ -6764,7 +6769,8 @@ dwarf_decode_lines (struct line_header *
+@@ -6889,7 +6894,8 @@ dwarf_decode_lines (struct line_header *
     subfile's name.  */
  
  static void
@@ -255,7 +261,7 @@
  {
    char *fullname;
  
-@@ -6783,7 +6789,7 @@ dwarf2_start_subfile (char *filename, ch
+@@ -6908,7 +6914,7 @@ dwarf2_start_subfile (char *filename, ch
    else
      fullname = filename;
  
@@ -264,7 +270,7 @@
  
    if (fullname != filename)
      xfree (fullname);
-@@ -6892,6 +6898,13 @@ new_symbol (struct die_info *die, struct
+@@ -7017,6 +7023,13 @@ new_symbol (struct die_info *die, struct
  	{
  	  SYMBOL_LINE (sym) = DW_UNSND (attr);
  	}
@@ -278,8 +284,10 @@
        switch (die->tag)
  	{
  	case DW_TAG_label:
---- ./gdb/symtab.c	2007-01-08 22:28:25.000000000 +0000
-+++ ./gdb/symtab.c	2007-01-09 08:19:05.000000000 +0000
+Index: gdb-6.6/gdb/symtab.c
+===================================================================
+--- gdb-6.6.orig/gdb/symtab.c	2007-01-20 13:59:25.000000000 +0100
++++ gdb-6.6/gdb/symtab.c	2007-01-20 13:59:48.000000000 +0100
 @@ -1129,6 +1129,10 @@ lookup_symbol (const char *name, const s
    if (needtofreename)
      xfree (demangled_name);
@@ -309,8 +317,10 @@
  		  psr->symbol = sym;
  		  psr->msymbol = NULL;
  		  psr->next = NULL;
---- ./gdb/symtab.h	2007-01-08 22:28:25.000000000 +0000
-+++ ./gdb/symtab.h	2007-01-09 08:44:02.000000000 +0000
+Index: gdb-6.6/gdb/symtab.h
+===================================================================
+--- gdb-6.6.orig/gdb/symtab.h	2007-01-20 06:43:00.000000000 +0100
++++ gdb-6.6/gdb/symtab.h	2007-01-20 13:59:48.000000000 +0100
 @@ -623,6 +623,18 @@ struct symbol
  
    ENUM_BITFIELD(address_class) aclass : 6;

gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch:
 target.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletion(-)

Index: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch	21 Sep 2006 13:07:53 -0000	1.1
+++ gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -4,10 +4,7 @@
 currently for trivia nonthreaded helloworld with no debug info up to -ggdb2 you
 will get:
         (gdb) p errno
-        Cannot access memory at address 0x8
-
-* with -ggdb3 "errno" gets resolved as _macro_ and the resulting
-  "(*__errno_location ())" expression is always fine.
+        [some error]
 
 * with -ggdb2 and less "errno" in fact does not exist anywhere as it was
   compiled to "(*__errno_location ())" and the macro definition is not present.
@@ -16,554 +13,25 @@
   (%gs on i386) is not setup and it will result in:
         Cannot access memory at address 0x8
 
-IMO the right way is to ignore TLS symbols for inferiors without activated
-threading.  Patch attached.
-
-Also attached suggestion patch how to deal with the most common "errno" symbol
+Attached suggestion patch how to deal with the most common "errno" symbol
 for the most common under-ggdb3 compiled programs.
 
 
 2006-08-25  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
-	* dwarf2loc.c (dwarf_expr_tls_address): Code moved out to
-	`target_translate_tls_address'.
-	* target.c (target_translate_tls_address): Moved here.
-	Provided warnings for TLS `errno' on non-TLS targets.
-	* target.h (target_translate_tls_address): Moved here.
-	* eval.c (evaluate_subexp_standard): New `UNOP_MEMVAL_TLS'.
-	* expprint.c (print_subexp_standard): New `UNOP_MEMVAL_TLS'.
-	(op_name_standard): New `UNOP_MEMVAL_TLS'.
-	(dump_subexp_body_standard): New `UNOP_MEMVAL_TLS'.
-	* expression.h (enum exp_opcode): New `UNOP_MEMVAL_TLS'.
-	(union exp_element): New `objfile' type.
-	* parse.c (write_exp_elt_objfile): New `objfile' setter.
-	(write_exp_msymbol): Support new `UNOP_MEMVAL_TLS'.
-	(msym_text_tls_symbol_type, msym_data_tls_symbol_type,
-	msym_unknown_tls_symbol_type, build_parse): New TLS types.
-	(operator_length_standard): New `UNOP_MEMVAL_TLS'.
-	* parser-defs.h (write_exp_elt_objfile): New `objfile' setter.
-	* valops.c (value_at_lazy): Pass control to `value_at_lazy_tls'.
-	(value_at_lazy_tls): Provide TLS `struct objfile *' storage.
-	(value_fetch_lazy): Resolve TLS `struct objfile *' storage.
-	(value_assign): Resolve TLS `struct objfile *' storage.
-	* value.c (struct value, allocate_value, value_tls_objfile,
-	set_value_tls_objfile): Provide TLS `struct objfile *' storage.
-	* value.h (value_tls_objfile, set_value_tls_objfile,
-	value_at_lazy_tls): Provide TLS `struct objfile *' storage.
-	* Makefile.in: Updated dependencies.
+	* target.c (target_translate_tls_address): Provided warnings for TLS
+	`errno' on non-TLS targets.
 
-2006-08-25  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
-	* gdb.threads/tls-nodebug.c: New file, test TLS symbols on gcc -s.
-	* gdb.threads/tls-nodebug.exp: New file, test TLS symbols on gcc -s.
-
-
-Index: gdb-6.5/gdb/Makefile.in
-===================================================================
-RCS file: /cvs/src/src/gdb/Makefile.in,v
-retrieving revision 1.840
-diff -u -p -r1.840 gdb-6.5/gdb/Makefile.in
---- gdb-6.5.org/gdb/Makefile.in	22 Aug 2006 19:08:31 -0000	1.840
-+++ gdb-6.5/gdb/Makefile.in	25 Aug 2006 19:55:35 -0000
-@@ -1977,7 +1977,7 @@ exec.o: exec.c $(defs_h) $(frame_h) $(in
- 	$(xcoffsolib_h) $(observer_h)
- expprint.o: expprint.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \
- 	$(value_h) $(language_h) $(parser_defs_h) $(user_regs_h) $(target_h) \
--	$(gdb_string_h) $(block_h)
-+	$(gdb_string_h) $(block_h) $(objfiles_h)
- fbsd-nat.o: fbsd-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) $(regcache_h) \
- 	$(regset_h) $(gdb_assert_h) $(gdb_string_h) $(elf_bfd_h) \
- 	$(fbsd_nat_h)
-@@ -2422,7 +2422,7 @@ osabi.o: osabi.c $(defs_h) $(gdb_assert_
- parse.o: parse.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
- 	$(frame_h) $(expression_h) $(value_h) $(command_h) $(language_h) \
- 	$(f_lang_h) $(parser_defs_h) $(gdbcmd_h) $(symfile_h) $(inferior_h) \
--	$(doublest_h) $(gdb_assert_h) $(block_h) $(source_h)
-+	$(doublest_h) $(gdb_assert_h) $(block_h) $(source_h) $(objfiles_h)
- p-exp.o: p-exp.c $(defs_h) $(gdb_string_h) $(expression_h) $(value_h) \
- 	$(parser_defs_h) $(language_h) $(p_lang_h) $(bfd_h) $(symfile_h) \
- 	$(objfiles_h) $(block_h)
-@@ -2750,7 +2750,8 @@ symtab.o: symtab.c $(defs_h) $(symtab_h)
- 	$(gdb_stat_h) $(cp_abi_h) $(observer_h)
- target.o: target.c $(defs_h) $(gdb_string_h) $(target_h) $(gdbcmd_h) \
- 	$(symtab_h) $(inferior_h) $(bfd_h) $(symfile_h) $(objfiles_h) \
--	$(gdb_wait_h) $(dcache_h) $(regcache_h) $(gdb_assert_h) $(gdbcore_h)
-+	$(gdb_wait_h) $(dcache_h) $(regcache_h) $(gdb_assert_h) $(gdbcore_h) \
-+	$(exceptions_h)
- thread.o: thread.c $(defs_h) $(symtab_h) $(frame_h) $(inferior_h) \
- 	$(environ_h) $(value_h) $(target_h) $(gdbthread_h) $(exceptions_h) \
- 	$(command_h) $(gdbcmd_h) $(regcache_h) $(gdb_h) $(gdb_string_h) \
-Index: gdb-6.5/gdb/dwarf2loc.c
+Index: gdb-6.6/gdb/target.c
 ===================================================================
-RCS file: /cvs/src/src/gdb/dwarf2loc.c,v
-retrieving revision 1.33
-diff -u -p -r1.33 gdb-6.5/gdb/dwarf2loc.c
---- gdb-6.5.org/gdb/dwarf2loc.c	17 Dec 2005 22:33:59 -0000	1.33
-+++ gdb-6.5/gdb/dwarf2loc.c	25 Aug 2006 19:55:36 -0000
-@@ -189,86 +189,8 @@ static CORE_ADDR
- dwarf_expr_tls_address (void *baton, CORE_ADDR offset)
- {
-   struct dwarf_expr_baton *debaton = (struct dwarf_expr_baton *) baton;
--  volatile CORE_ADDR addr = 0;
- 
--  if (target_get_thread_local_address_p ()
--      && gdbarch_fetch_tls_load_module_address_p (current_gdbarch))
--    {
--      ptid_t ptid = inferior_ptid;
--      struct objfile *objfile = debaton->objfile;
--      volatile struct gdb_exception ex;
--
--      TRY_CATCH (ex, RETURN_MASK_ALL)
--	{
--	  CORE_ADDR lm_addr;
--	  
--	  /* Fetch the load module address for this objfile.  */
--	  lm_addr = gdbarch_fetch_tls_load_module_address (current_gdbarch,
--	                                                   objfile);
--	  /* If it's 0, throw the appropriate exception.  */
--	  if (lm_addr == 0)
--	    throw_error (TLS_LOAD_MODULE_NOT_FOUND_ERROR,
--			 _("TLS load module not found"));
--
--	  addr = target_get_thread_local_address (ptid, lm_addr, offset);
--	}
--      /* If an error occurred, print TLS related messages here.  Otherwise,
--         throw the error to some higher catcher.  */
--      if (ex.reason < 0)
--	{
--	  int objfile_is_library = (objfile->flags & OBJF_SHARED);
--
--	  switch (ex.error)
--	    {
--	    case TLS_NO_LIBRARY_SUPPORT_ERROR:
--	      error (_("Cannot find thread-local variables in this thread library."));
--	      break;
--	    case TLS_LOAD_MODULE_NOT_FOUND_ERROR:
--	      if (objfile_is_library)
--		error (_("Cannot find shared library `%s' in dynamic"
--		         " linker's load module list"), objfile->name);
--	      else
--		error (_("Cannot find executable file `%s' in dynamic"
--		         " linker's load module list"), objfile->name);
--	      break;
--	    case TLS_NOT_ALLOCATED_YET_ERROR:
--	      if (objfile_is_library)
--		error (_("The inferior has not yet allocated storage for"
--		         " thread-local variables in\n"
--		         "the shared library `%s'\n"
--		         "for %s"),
--		       objfile->name, target_pid_to_str (ptid));
--	      else
--		error (_("The inferior has not yet allocated storage for"
--		         " thread-local variables in\n"
--		         "the executable `%s'\n"
--		         "for %s"),
--		       objfile->name, target_pid_to_str (ptid));
--	      break;
--	    case TLS_GENERIC_ERROR:
--	      if (objfile_is_library)
--		error (_("Cannot find thread-local storage for %s, "
--		         "shared library %s:\n%s"),
--		       target_pid_to_str (ptid),
--		       objfile->name, ex.message);
--	      else
--		error (_("Cannot find thread-local storage for %s, "
--		         "executable file %s:\n%s"),
--		       target_pid_to_str (ptid),
--		       objfile->name, ex.message);
--	      break;
--	    default:
--	      throw_exception (ex);
--	      break;
--	    }
--	}
--    }
--  /* 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
+--- gdb-6.6.orig/gdb/target.c	2007-01-17 01:25:31.000000000 +0100
++++ gdb-6.6/gdb/target.c	2007-01-20 06:31:36.000000000 +0100
+@@ -898,7 +898,18 @@
+   /* 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
 -    error (_("Cannot find thread-local variables on this target"));
--
--  return addr;
-+  return target_translate_tls_address (debaton->objfile, offset);
- }
- 
- /* Evaluate a location description, starting at DATA and with length
-Index: gdb-6.5/gdb/eval.c
-===================================================================
-RCS file: /cvs/src/src/gdb/eval.c,v
-retrieving revision 1.63
-diff -u -p -r1.63 gdb-6.5/gdb/eval.c
---- gdb-6.5.org/gdb/eval.c	25 Jul 2006 04:24:50 -0000	1.63
-+++ gdb-6.5/gdb/eval.c	25 Aug 2006 19:55:38 -0000
-@@ -2019,6 +2019,18 @@ evaluate_subexp_standard (struct type *e
- 	return value_at_lazy (exp->elts[pc + 1].type,
- 			      value_as_address (arg1));
- 
-+    case UNOP_MEMVAL_TLS:
-+      (*pos) += 3;
-+      arg1 = evaluate_subexp (expect_type, exp, pos, noside);
-+      if (noside == EVAL_SKIP)
-+	goto nosideret;
-+      if (noside == EVAL_AVOID_SIDE_EFFECTS)
-+	return value_zero (exp->elts[pc + 2].type, lval_memory);
-+      else
-+	return value_at_lazy_tls (exp->elts[pc + 2].type,
-+				  value_as_address (arg1),
-+				  exp->elts[pc + 1].objfile);
-+
-     case UNOP_PREINCREMENT:
-       arg1 = evaluate_subexp (expect_type, exp, pos, noside);
-       if (noside == EVAL_SKIP || noside == EVAL_AVOID_SIDE_EFFECTS)
-Index: gdb-6.5/gdb/expprint.c
-===================================================================
-RCS file: /cvs/src/src/gdb/expprint.c,v
-retrieving revision 1.24
-diff -u -p -r1.24 gdb-6.5/gdb/expprint.c
---- gdb-6.5.org/gdb/expprint.c	7 Aug 2006 03:30:54 -0000	1.24
-+++ gdb-6.5/gdb/expprint.c	25 Aug 2006 19:55:39 -0000
-@@ -31,6 +31,7 @@
- #include "target.h"
- #include "gdb_string.h"
- #include "block.h"
-+#include "objfiles.h"
- 
- #ifdef HAVE_CTYPE_H
- #include <ctype.h>
-@@ -414,6 +415,33 @@ print_subexp_standard (struct expression
- 	fputs_filtered (")", stream);
-       return;
- 
-+    case UNOP_MEMVAL_TLS:
-+      (*pos) += 3;
-+      if ((int) prec > (int) PREC_PREFIX)
-+	fputs_filtered ("(", stream);
-+      if (TYPE_CODE (exp->elts[pc + 2].type) == TYPE_CODE_FUNC &&
-+	  exp->elts[pc + 4].opcode == OP_LONG)
-+	{
-+	  /* We have a minimal symbol fn, probably.  It's encoded
-+	     as a UNOP_MEMVAL (function-type) of an OP_LONG (int, address).
-+	     Swallow the OP_LONG (including both its opcodes); ignore
-+	     its type; print the value in the type of the MEMVAL.  */
-+	  (*pos) += 4;
-+	  val = value_at_lazy (exp->elts[pc + 2].type,
-+			       (CORE_ADDR) exp->elts[pc + 6].longconst);
-+	  value_print (val, stream, 0, Val_no_prettyprint);
-+	}
-+      else
-+	{
-+	  fputs_filtered ("{", stream);
-+	  type_print (exp->elts[pc + 2].type, "", stream, 0);
-+	  fputs_filtered ("} ", stream);
-+	  print_subexp (exp, pos, stream, PREC_PREFIX);
-+	}
-+      if ((int) prec > (int) PREC_PREFIX)
-+	fputs_filtered (")", stream);
-+      return;
-+
-     case BINOP_ASSIGN_MODIFY:
-       opcode = exp->elts[pc + 1].opcode;
-       (*pos) += 2;
-@@ -694,6 +722,8 @@ op_name_standard (enum exp_opcode opcode
-       return "UNOP_CAST";
-     case UNOP_MEMVAL:
-       return "UNOP_MEMVAL";
-+    case UNOP_MEMVAL_TLS:
-+      return "UNOP_MEMVAL_TLS";
-     case UNOP_NEG:
-       return "UNOP_NEG";
-     case UNOP_LOGICAL_NOT:
-@@ -999,6 +1029,16 @@ dump_subexp_body_standard (struct expres
-       fprintf_filtered (stream, ")");
-       elt = dump_subexp (exp, stream, elt + 2);
-       break;
-+    case UNOP_MEMVAL_TLS:
-+      fprintf_filtered (stream, "TLS type @");
-+      gdb_print_host_address (exp->elts[elt + 1].type, stream);
-+      fprintf_filtered (stream, " (__thread /* \"%s\" */ ",
-+                        (exp->elts[elt].objfile == NULL ? "(null)"
-+			 : exp->elts[elt].objfile->name));
-+      type_print (exp->elts[elt + 1].type, NULL, stream, 0);
-+      fprintf_filtered (stream, ")");
-+      elt = dump_subexp (exp, stream, elt + 3);
-+      break;
-     case OP_TYPE:
-       fprintf_filtered (stream, "Type @");
-       gdb_print_host_address (exp->elts[elt].type, stream);
-Index: gdb-6.5/gdb/expression.h
-===================================================================
-RCS file: /cvs/src/src/gdb/expression.h,v
-retrieving revision 1.18
-diff -u -p -r1.18 gdb-6.5/gdb/expression.h
---- gdb-6.5.org/gdb/expression.h	17 Dec 2005 22:33:59 -0000	1.18
-+++ gdb-6.5/gdb/expression.h	25 Aug 2006 19:55:40 -0000
-@@ -234,6 +234,13 @@ enum exp_opcode
-        following subexpression.  */
-     UNOP_MEMVAL,
- 
-+    /* UNOP_MEMVAL_TLS is followed by a `struct objfile' pointer in the next
-+       exp_element and a type pointer in the following exp_element.
-+       With another UNOP_MEMVAL_TLS at the end, this makes four exp_elements.
-+       It casts the contents of the word offsetted by the value of the
-+       following subexpression from the TLS specified by `struct objfile'.  */
-+    UNOP_MEMVAL_TLS,
-+
-     /* UNOP_... operate on one value from a following subexpression
-        and replace it with a result.  They take no immediate arguments.  */
- 
-@@ -360,6 +367,7 @@ union exp_element
-     struct type *type;
-     struct internalvar *internalvar;
-     struct block *block;
-+    struct objfile *objfile;
-   };
- 
- struct expression
-Index: gdb-6.5/gdb/parse.c
-===================================================================
-RCS file: /cvs/src/src/gdb/parse.c,v
-retrieving revision 1.53
-diff -u -p -r1.53 gdb-6.5/gdb/parse.c
---- gdb-6.5.org/gdb/parse.c	6 Jul 2006 14:00:48 -0000	1.53
-+++ gdb-6.5/gdb/parse.c	25 Aug 2006 19:55:41 -0000
-@@ -53,6 +53,7 @@
- #include "gdb_assert.h"
- #include "block.h"
- #include "source.h"
-+#include "objfiles.h"
- 
- /* Standard set of definitions for printing, dumping, prefixifying,
-  * and evaluating expressions.  */
-@@ -219,6 +220,15 @@ write_exp_elt_block (struct block *b)
- }
- 
- void
-+write_exp_elt_objfile (struct objfile *objfile)
-+{
-+  union exp_element tmp;
-+  memset (&tmp, 0, sizeof (union exp_element));
-+  tmp.objfile = objfile;
-+  write_exp_elt (tmp);
-+}
-+
-+void
- write_exp_elt_longcst (LONGEST expelt)
- {
-   union exp_element tmp;
-@@ -378,6 +388,9 @@ write_exp_bitstring (struct stoken str)
- static struct type *msym_text_symbol_type;
- static struct type *msym_data_symbol_type;
- static struct type *msym_unknown_symbol_type;
-+static struct type *msym_text_tls_symbol_type;
-+static struct type *msym_data_tls_symbol_type;
-+static struct type *msym_unknown_tls_symbol_type;
- 
- void
- write_exp_msymbol (struct minimal_symbol *msymbol, 
-@@ -385,6 +398,8 @@ write_exp_msymbol (struct minimal_symbol
- 		   struct type *data_symbol_type)
- {
-   CORE_ADDR addr;
-+  int tls = SYMBOL_BFD_SECTION (msymbol)->flags & SEC_THREAD_LOCAL;
-+  enum exp_opcode opcode = tls ? UNOP_MEMVAL_TLS : UNOP_MEMVAL;
- 
-   write_exp_elt_opcode (OP_LONG);
-   /* Let's make the type big enough to hold a 64-bit address.  */
-@@ -397,27 +412,49 @@ write_exp_msymbol (struct minimal_symbol
- 
-   write_exp_elt_opcode (OP_LONG);
- 
--  write_exp_elt_opcode (UNOP_MEMVAL);
-+  write_exp_elt_opcode (opcode);
-+
-+  if (opcode == UNOP_MEMVAL_TLS)
-+    {
-+      bfd *bfd = SYMBOL_BFD_SECTION (msymbol)->owner;
-+      struct objfile *ofp;
-+
-+      ALL_OBJFILES (ofp)
-+	if (ofp->obfd == bfd)
-+	  break;
-+      write_exp_elt_objfile (ofp);
-+    }
-+
-   switch (msymbol->type)
-     {
-     case mst_text:
-     case mst_file_text:
-     case mst_solib_trampoline:
--      write_exp_elt_type (msym_text_symbol_type);
-+      if (tls)
-+	write_exp_elt_type (msym_text_tls_symbol_type);
-+      else
-+	write_exp_elt_type (msym_text_symbol_type);
-       break;
- 
-     case mst_data:
-     case mst_file_data:
-     case mst_bss:
-     case mst_file_bss:
--      write_exp_elt_type (msym_data_symbol_type);
-+      if (tls)
-+	write_exp_elt_type (msym_data_tls_symbol_type);
-+      else
-+	write_exp_elt_type (msym_data_symbol_type);
-       break;
- 
-     default:
--      write_exp_elt_type (msym_unknown_symbol_type);
-+      if (tls)
-+	write_exp_elt_type (msym_unknown_tls_symbol_type);
-+      else
-+	write_exp_elt_type (msym_unknown_symbol_type);
-       break;
-     }
--  write_exp_elt_opcode (UNOP_MEMVAL);
-+
-+  write_exp_elt_opcode (opcode);
- }
- 
- /* Recognize tokens that start with '$'.  These include:
-@@ -904,6 +941,11 @@ operator_length_standard (struct express
-       args = 1;
-       break;
- 
-+    case UNOP_MEMVAL_TLS:
-+      oplen = 4;
-+      args = 1;
-+      break;
-+
-     case UNOP_ABS:
-     case UNOP_CAP:
-     case UNOP_CHR:
-@@ -1341,6 +1383,17 @@ build_parse (void)
-     init_type (TYPE_CODE_INT, 1, 0,
- 	       "<variable (not text or data), no debug info>",
- 	       NULL);
-+
-+  msym_text_tls_symbol_type =
-+    init_type (TYPE_CODE_FUNC, 1, 0, "<TLS-based text variable, no debug info>", NULL);
-+  TYPE_TARGET_TYPE (msym_text_tls_symbol_type) = builtin_type_int;
-+  msym_data_tls_symbol_type =
-+    init_type (TYPE_CODE_INT, TARGET_INT_BIT / HOST_CHAR_BIT, 0,
-+	       "<TLS-based data variable, no debug info>", NULL);
-+  msym_unknown_tls_symbol_type =
-+    init_type (TYPE_CODE_INT, 1, 0,
-+	       "<TLS-based variable (not text or data), no debug info>",
-+	       NULL);
- }
- 
- /* This function avoids direct calls to fprintf 
-Index: gdb-6.5/gdb/parser-defs.h
-===================================================================
-RCS file: /cvs/src/src/gdb/parser-defs.h,v
-retrieving revision 1.20
-diff -u -p -r1.20 gdb-6.5/gdb/parser-defs.h
---- gdb-6.5.org/gdb/parser-defs.h	17 Dec 2005 22:34:01 -0000	1.20
-+++ gdb-6.5/gdb/parser-defs.h	25 Aug 2006 19:55:41 -0000
-@@ -131,6 +131,8 @@ extern void write_exp_bitstring (struct 
- 
- extern void write_exp_elt_block (struct block *);
- 
-+extern void write_exp_elt_objfile (struct objfile *objfile);
-+
- extern void write_exp_msymbol (struct minimal_symbol *,
- 			       struct type *, struct type *);
- 
---- gdb-6.5.org/gdb/target.c	16 Aug 2006 18:31:03 -0000	1.124
-+++ gdb-6.5/gdb/target.c	25 Aug 2006 19:55:43 -0000
-@@ -40,6 +40,7 @@
- #include "gdb_assert.h"
- #include "gdbcore.h"
- #include "observer.h"
-+#include "exceptions.h"
- 
- static void target_info (char *, int);
- 
-@@ -755,6 +756,103 @@ pop_target (void)
-   internal_error (__FILE__, __LINE__, _("failed internal consistency check"));
- }
- 
-+/* Using the objfile specified in BATON, find the address for the
-+   current thread's thread-local storage with offset OFFSET.  */
-+CORE_ADDR
-+target_translate_tls_address (struct objfile *objfile, CORE_ADDR offset)
-+{
-+  volatile CORE_ADDR addr = 0;
-+
-+  if (target_get_thread_local_address_p ()
-+      && gdbarch_fetch_tls_load_module_address_p (current_gdbarch))
-+    {
-+      ptid_t ptid = inferior_ptid;
-+      volatile struct gdb_exception ex;
-+
-+      TRY_CATCH (ex, RETURN_MASK_ALL)
-+	{
-+	  CORE_ADDR lm_addr;
-+	  
-+	  /* Fetch the load module address for this objfile.  */
-+	  lm_addr = gdbarch_fetch_tls_load_module_address (current_gdbarch,
-+	                                                   objfile);
-+	  /* If it's 0, throw the appropriate exception.  */
-+	  if (lm_addr == 0)
-+	    throw_error (TLS_LOAD_MODULE_NOT_FOUND_ERROR,
-+			 _("TLS load module not found"));
-+
-+	  addr = target_get_thread_local_address (ptid, lm_addr, offset);
-+	}
-+      /* If an error occurred, print TLS related messages here.  Otherwise,
-+         throw the error to some higher catcher.  */
-+      if (ex.reason < 0)
-+	{
-+	  int objfile_is_library = (objfile->flags & OBJF_SHARED);
-+
-+	  switch (ex.error)
-+	    {
-+	    case TLS_NO_LIBRARY_SUPPORT_ERROR:
-+	      error (_("Cannot find thread-local variables in this thread library."));
-+	      break;
-+	    case TLS_LOAD_MODULE_NOT_FOUND_ERROR:
-+	      if (objfile_is_library)
-+		error (_("Cannot find shared library `%s' in dynamic"
-+		         " linker's load module list"), objfile->name);
-+	      else
-+		error (_("Cannot find executable file `%s' in dynamic"
-+		         " linker's load module list"), objfile->name);
-+	      break;
-+	    case TLS_NOT_ALLOCATED_YET_ERROR:
-+	      if (objfile_is_library)
-+		error (_("The inferior has not yet allocated storage for"
-+		         " thread-local variables in\n"
-+		         "the shared library `%s'\n"
-+		         "for %s"),
-+		       objfile->name, target_pid_to_str (ptid));
-+	      else
-+		error (_("The inferior has not yet allocated storage for"
-+		         " thread-local variables in\n"
-+		         "the executable `%s'\n"
-+		         "for %s"),
-+		       objfile->name, target_pid_to_str (ptid));
-+	      break;
-+	    case TLS_GENERIC_ERROR:
-+	      if (objfile_is_library)
-+		error (_("Cannot find thread-local storage for %s, "
-+		         "shared library %s:\n%s"),
-+		       target_pid_to_str (ptid),
-+		       objfile->name, ex.message);
-+	      else
-+		error (_("Cannot find thread-local storage for %s, "
-+		         "executable file %s:\n%s"),
-+		       target_pid_to_str (ptid),
-+		       objfile->name, ex.message);
-+	      break;
-+	    default:
-+	      throw_exception (ex);
-+	      break;
-+	    }
-+	}
-+    }
-+  /* 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
 +    {
 +      struct minimal_symbol *msymbol;
 +
@@ -576,250 +44,6 @@
 +		 " compile the program with `gcc -ggdb3' or `gcc -pthread'."));
 +      error (_("Cannot find thread-local variables on this target"));
 +    }
-+
-+  return addr;
-+}
-+
- #undef	MIN
- #define MIN(A, B) (((A) <= (B)) ? (A) : (B))
- 
-Index: gdb-6.5/gdb/target.h
-===================================================================
-RCS file: /cvs/src/src/gdb/target.h,v
-retrieving revision 1.87
-diff -u -p -r1.87 gdb-6.5/gdb/target.h
---- gdb-6.5.org/gdb/target.h	15 Aug 2006 18:46:25 -0000	1.87
-+++ gdb-6.5/gdb/target.h	25 Aug 2006 19:55:44 -0000
-@@ -1131,6 +1131,9 @@ extern void target_preopen (int);
- 
- extern void pop_target (void);
- 
-+extern CORE_ADDR target_translate_tls_address (struct objfile *objfile,
-+					       CORE_ADDR offset);
-+
- /* Struct section_table maps address ranges to file sections.  It is
-    mostly used with BFD files, but can be used without (e.g. for handling
-    raw disks, or files not in formats handled by BFD).  */
-Index: gdb-6.5/gdb/valops.c
-===================================================================
-RCS file: /cvs/src/src/gdb/valops.c,v
-retrieving revision 1.164
-diff -u -p -r1.164 gdb-6.5/gdb/valops.c
---- gdb-6.5.org/gdb/valops.c	13 Jul 2006 04:31:42 -0000	1.164
-+++ gdb-6.5/gdb/valops.c	25 Aug 2006 19:55:46 -0000
-@@ -501,7 +501,8 @@ value_at (struct type *type, CORE_ADDR a
- /* Return a lazy value with type TYPE located at ADDR (cf. value_at).  */
- 
- struct value *
--value_at_lazy (struct type *type, CORE_ADDR addr)
-+value_at_lazy_tls (struct type *type, CORE_ADDR addr,
-+		   struct objfile *tls_objfile)
- {
-   struct value *val;
- 
-@@ -512,11 +513,19 @@ value_at_lazy (struct type *type, CORE_A
- 
-   VALUE_LVAL (val) = lval_memory;
-   VALUE_ADDRESS (val) = addr;
-+  if (tls_objfile != NULL)
-+    set_value_tls_objfile (val, tls_objfile);
-   set_value_lazy (val, 1);
- 
-   return val;
- }
- 
-+struct value *
-+value_at_lazy (struct type *type, CORE_ADDR addr)
-+{
-+  return value_at_lazy_tls (type, addr, NULL);
-+}
-+
- /* Called only from the value_contents and value_contents_all()
-    macros, if the current data for a variable needs to be loaded into
-    value_contents(VAL).  Fetches the data from the user's process, and
-@@ -538,7 +547,17 @@ value_fetch_lazy (struct value *val)
- 
-   struct type *type = value_type (val);
-   if (length)
--    read_memory (addr, value_contents_all_raw (val), length);
-+    {
-+      struct objfile *tls_objfile = value_tls_objfile (val);
-+
-+      if (tls_objfile != NULL)
-+	{
-+	  /* `target_translate_tls_address' uses `inferior_ptid'.  */
-+	  addr = target_translate_tls_address (tls_objfile, addr);
-+	}
-+
-+      read_memory (addr, value_contents_all_raw (val), length);
-+    }
- 
-   set_value_lazy (val, 0);
-   return 0;
-@@ -596,6 +615,7 @@ value_assign (struct value *toval, struc
- 	CORE_ADDR changed_addr;
- 	int changed_len;
-         gdb_byte buffer[sizeof (LONGEST)];
-+	struct objfile *tls_objfile = value_tls_objfile (toval);
  
- 	if (value_bitsize (toval))
- 	  {
-@@ -624,6 +644,13 @@ value_assign (struct value *toval, struc
- 	    dest_buffer = value_contents (fromval);
- 	  }
- 
-+	if (tls_objfile != NULL)
-+	  {
-+	    /* `target_translate_tls_address' uses `inferior_ptid'.  */
-+	    changed_addr = target_translate_tls_address (tls_objfile,
-+							 changed_addr);
-+	  }
-+
- 	write_memory (changed_addr, dest_buffer, changed_len);
- 	if (deprecated_memory_changed_hook)
- 	  deprecated_memory_changed_hook (changed_addr, changed_len);
-Index: gdb-6.5/gdb/value.c
-===================================================================
-RCS file: /cvs/src/src/gdb/value.c,v
-retrieving revision 1.36
-diff -u -p -r1.36 gdb-6.5/gdb/value.c
---- gdb-6.5.org/gdb/value.c	31 Mar 2006 10:36:18 -0000	1.36
-+++ gdb-6.5/gdb/value.c	25 Aug 2006 19:55:47 -0000
-@@ -158,6 +158,9 @@ struct value
-      actually exist in the program.  */
-   char optimized_out;
- 
-+  /* TLS owner.  */
-+  struct objfile *tls_objfile;
-+
-   /* Actual contents of the value.  For use of this value; setting it
-      uses the stuff above.  Not valid if lazy is nonzero.  Target
-      byte-order.  We force it to be aligned properly for any possible
-@@ -230,6 +233,7 @@ allocate_value (struct type *type)
-   VALUE_REGNUM (val) = -1;
-   val->lazy = 0;
-   val->optimized_out = 0;
-+  val->tls_objfile = NULL;
-   val->embedded_offset = 0;
-   val->pointed_to_offset = 0;
-   val->modifiable = 1;
-@@ -344,6 +348,18 @@ set_value_lazy (struct value *value, int
-   value->lazy = val;
+   return addr;
  }
- 
-+struct objfile *
-+value_tls_objfile (struct value *value)
-+{
-+  return value->tls_objfile;
-+}
-+
-+void
-+set_value_tls_objfile (struct value *value, struct objfile *tls_objfile)
-+{
-+  value->tls_objfile = tls_objfile;
-+}
-+
- const gdb_byte *
- value_contents (struct value *value)
- {
-Index: gdb-6.5/gdb/value.h
-===================================================================
-RCS file: /cvs/src/src/gdb/value.h,v
-retrieving revision 1.92
-diff -u -p -r1.92 gdb-6.5/gdb/value.h
---- gdb-6.5.org/gdb/value.h	13 Jul 2006 04:31:42 -0000	1.92
-+++ gdb-6.5/gdb/value.h	25 Aug 2006 19:55:48 -0000
-@@ -154,6 +154,10 @@ extern void set_value_embedded_offset (s
- extern int value_lazy (struct value *);
- extern void set_value_lazy (struct value *value, int val);
- 
-+extern struct objfile *value_tls_objfile (struct value *value);
-+extern void set_value_tls_objfile (struct value *value,
-+				   struct objfile *tls_objfile);
-+
- /* value_contents() and value_contents_raw() both return the address
-    of the gdb buffer used to hold a copy of the contents of the lval.
-    value_contents() is used when the contents of the buffer are needed
-@@ -277,6 +281,8 @@ extern struct value *value_from_double (
- extern struct value *value_from_string (char *string);
- 
- extern struct value *value_at (struct type *type, CORE_ADDR addr);
-+extern struct value *value_at_lazy_tls (struct type *type, CORE_ADDR addr,
-+					struct objfile *tls_objfile);
- extern struct value *value_at_lazy (struct type *type, CORE_ADDR addr);
- 
- extern struct value *value_from_register (struct type *type, int regnum,
-Index: gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.c
-===================================================================
-RCS file: gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.c
-diff -N gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.c
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.c	25 Aug 2006 19:55:48 -0000
-@@ -0,0 +1,8 @@
-+/* Test accessing TLS based variable without any debug info compiled.  */
-+
-+__thread int thread_local = 42;
-+
-+int main(void)
-+{
-+  return 0;
-+}
-Index: gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.exp
-===================================================================
-RCS file: gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.exp
-diff -N gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.exp
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/tls-nodebug.exp	25 Aug 2006 19:55:49 -0000
-@@ -0,0 +1,52 @@
-+# tls.exp -- Expect script to test thread-local storage without debuginfo
-+# Copyright (C) 2006 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+# 
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+# 
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-+
-+# Please email any bugs, comments, and/or additions to this file to:
-+# bug-gdb at prep.ai.mit.edu
-+
-+set testfile tls-nodebug
-+set srcfile ${testfile}.c
-+set binfile ${objdir}/${subdir}/${testfile}
-+
-+if [istarget "*-*-linux"] then {
-+    set target_cflags "-D_MIT_POSIX_THREADS"
-+} else {
-+    set target_cflags ""
-+}
-+
-+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
-+    return -1
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+
-+gdb_load ${binfile}
-+if ![runto_main] then {
-+   fail "Can't run to main"
-+   return 0
-+}
-+
-+# Formerly: Cannot access memory at address 0x0
-+gdb_test "p thread_local" "= 42" "thread local storage"
-+
-+# Done!
-+#
-+gdb_exit
-+
-+return 0

gdb-6.5-bz190810-gdbserver-arch-advice.patch:
 remote.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

Index: gdb-6.5-bz190810-gdbserver-arch-advice.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.5-bz190810-gdbserver-arch-advice.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz190810-gdbserver-arch-advice.patch	1 Oct 2006 19:21:15 -0000	1.1
+++ gdb-6.5-bz190810-gdbserver-arch-advice.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -7,9 +7,11 @@
 	(remote_async_wait): Likewise.
 
 
---- gdb-6.5/gdb/remote.c.orig	2006-10-01 08:01:17.000000000 -0400
-+++ gdb-6.5/gdb/remote.c	2006-10-01 08:03:18.000000000 -0400
-@@ -2789,8 +2789,13 @@
+Index: gdb-6.6/gdb/remote.c
+===================================================================
+--- gdb-6.6.orig/gdb/remote.c	2007-01-20 06:43:04.000000000 +0100
++++ gdb-6.6/gdb/remote.c	2007-01-20 06:55:50.000000000 +0100
+@@ -3111,8 +3111,13 @@ Packet: '%s'\n"),
  					 reg->regnum, regs);
  		  }
  
@@ -17,14 +19,14 @@
 +		   target.  gdbserver(1) is not aware of the `set architecture'
 +		   name itself as it is not using libbfd.  */
  		if (*p++ != ';')
--		  error (_("Remote register badly formatted: %s\nhere: %s"), 
+-		  error (_("Remote register badly formatted: %s\nhere: %s"),
 +		  error (_("Remote register badly formatted: %s\nhere: %s"
 +			   "\nTry to load the executable by `file' first,"
 +			   "\nyou may also check `set/show architecture'."),
  			 buf, p);
  	      }
  	  }
-@@ -2983,8 +2988,13 @@
+@@ -3307,8 +3312,13 @@ Packet: '%s'\n"),
  		    regcache_raw_supply (current_regcache, reg->regnum, regs);
  		  }
  

gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch:
 minsyms.c |    5 +++++
 1 files changed, 5 insertions(+)

Index: gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch	23 Dec 2006 21:32:21 -0000	1.1
+++ gdb-6.5-bz218379-ppc-solib-trampoline-fix.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -1,12 +1,14 @@
 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
 
 
---- gdb-6.5-depatched/gdb/minsyms.c	2006-12-17 16:10:53.000000000 -0500
-+++ gdb-6.5/gdb/minsyms.c	2006-12-17 16:51:21.000000000 -0500
-@@ -505,6 +505,11 @@
- 			  don't fill the bfd_section member, so don't
- 			  throw away symbols on those platforms.  */
- 		       && SYMBOL_BFD_SECTION (&msymbol[hi]) != NULL
+Index: gdb-6.6/gdb/minsyms.c
+===================================================================
+--- gdb-6.6.orig/gdb/minsyms.c	2007-01-20 13:53:48.000000000 +0100
++++ gdb-6.6/gdb/minsyms.c	2007-01-20 13:58:47.000000000 +0100
+@@ -490,6 +490,11 @@ lookup_minimal_symbol_by_pc_section (COR
+ 			 don't fill the bfd_section member, so don't
+ 			 throw away symbols on those platforms.  */
+ 		      && SYMBOL_BFD_SECTION (&msymbol[hi]) != NULL
 +		      /* Don't ignore symbols for solib trampolines.
 +		         Limit its sideeffects - only for non-0 sized trampolines.
 +		         Red Hat Bug 200533 with its regression Bug 218379.  */
@@ -14,4 +16,4 @@
 +		          || MSYMBOL_SIZE (&msymbol[hi]))
  		      && (!matching_bfd_sections
  			  (SYMBOL_BFD_SECTION (&msymbol[hi]), section)))
- 		  --hi;
+ 		    {

gdb-6.5-gcore-i386-on-amd64.patch:
 Makefile.in       |    5 +
 amd64-linux-nat.c |  125 ++++++++++++++++++++++++++++++++++++++++++++
 config.in         |    6 ++
 configure         |  151 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac      |    1 
 gcore.c           |    5 +
 gdb_procfs32.h    |  128 +++++++++++++++++++++++++++++++++++++++++++++
 gdb_user32.h      |  108 ++++++++++++++++++++++++++++++++++++++
 linux-nat.c       |   33 +++++++----
 linux-nat.h       |    9 +++
 10 files changed, 558 insertions(+), 13 deletions(-)

Index: gdb-6.5-gcore-i386-on-amd64.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.5-gcore-i386-on-amd64.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-gcore-i386-on-amd64.patch	1 Oct 2006 19:21:15 -0000	1.1
+++ gdb-6.5-gcore-i386-on-amd64.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -16,11 +16,11 @@
 	* Makefile.in: Dependencies updated.
 
 
-Index: gdb-6.5/gdb/Makefile.in
+Index: gdb-6.6/gdb/Makefile.in
 ===================================================================
---- gdb-6.5.orig/gdb/Makefile.in	21 Sep 2006 14:00:53 -0000	1.844
-+++ gdb-6.5/gdb/Makefile.in	1 Oct 2006 16:22:42 -0000
-@@ -696,6 +696,7 @@ gdb_h = gdb.h
+--- gdb-6.6.orig/gdb/Makefile.in	2007-01-20 06:43:02.000000000 +0100
++++ gdb-6.6/gdb/Makefile.in	2007-01-20 06:57:16.000000000 +0100
+@@ -705,6 +705,7 @@ gdb_expat_h = gdb_expat.h
  gdb_locale_h = gdb_locale.h
  gdb_obstack_h = gdb_obstack.h $(obstack_h)
  gdb_proc_service_h = gdb_proc_service.h $(gregset_h)
@@ -28,7 +28,7 @@
  gdb_ptrace_h = gdb_ptrace.h
  gdb_regex_h = gdb_regex.h $(xregex_h)
  gdb_select_h = gdb_select.h
-@@ -705,6 +706,7 @@ gdb_string_h = gdb_string.h
+@@ -714,6 +715,7 @@ gdb_string_h = gdb_string.h
  gdb_thread_db_h = gdb_thread_db.h
  gdbthread_h = gdbthread.h $(breakpoint_h) $(frame_h)
  gdbtypes_h = gdbtypes.h $(hashtab_h)
@@ -36,21 +36,21 @@
  gdb_vfork_h = gdb_vfork.h
  gdb_wait_h = gdb_wait.h
  glibc_tdep_h = glibc-tdep.h
-@@ -1743,7 +1745,8 @@ amd64fbsd-tdep.o: amd64fbsd-tdep.c $(def
+@@ -1779,7 +1781,8 @@ amd64fbsd-tdep.o: amd64fbsd-tdep.c $(def
  amd64-linux-nat.o: amd64-linux-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) \
  	$(regcache_h) $(linux_nat_h) $(gdb_assert_h) $(gdb_string_h) \
  	$(gdb_proc_service_h) $(gregset_h) $(amd64_tdep_h) \
--	$(i386_linux_tdep_h) $(amd64_nat_h) $(target_h)
-+	$(i386_linux_tdep_h) $(amd64_nat_h) $(target_h) \
+-	$(i386_linux_tdep_h) $(amd64_nat_h) $(target_h) $(amd64_linux_tdep_h)
++	$(i386_linux_tdep_h) $(amd64_nat_h) $(target_h) $(amd64_linux_tdep_h) \
 +	$(i387_tdep_h) $(elf_bfd_h) $(gdb_procfs32_h)
  amd64-linux-tdep.o: amd64-linux-tdep.c $(defs_h) $(frame_h) $(gdbcore_h) \
  	$(regcache_h) $(osabi_h) $(symtab_h) $(gdb_string_h) $(amd64_tdep_h) \
- 	$(solib_svr4_h)
-Index: gdb-6.5/gdb/amd64-linux-nat.c
+ 	$(solib_svr4_h) $(gdbtypes_h) $(reggroups_h) $(amd64_linux_tdep_h)
+Index: gdb-6.6/gdb/amd64-linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/amd64-linux-nat.c	19 Aug 2006 15:15:18 -0000	1.13
-+++ gdb-6.5/gdb/amd64-linux-nat.c	1 Oct 2006 16:22:42 -0000
-@@ -52,6 +52,9 @@
+--- gdb-6.6.orig/gdb/amd64-linux-nat.c	2007-01-20 06:43:00.000000000 +0100
++++ gdb-6.6/gdb/amd64-linux-nat.c	2007-01-20 06:56:21.000000000 +0100
+@@ -53,6 +53,9 @@
  #include "amd64-tdep.h"
  #include "i386-linux-tdep.h"
  #include "amd64-nat.h"
@@ -60,7 +60,7 @@
  
  /* Mapping between the general-purpose registers in GNU/Linux x86-64
     `struct user' format and GDB's register cache layout.  */
-@@ -86,6 +89,35 @@ static int amd64_linux_gregset64_reg_off
+@@ -87,6 +90,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.  */
  
@@ -96,7 +96,7 @@
  /* From <sys/reg.h> on GNU/Linux i386.  */
  static int amd64_linux_gregset32_reg_offset[] =
  {
-@@ -104,6 +136,94 @@ static int amd64_linux_gregset32_reg_off
+@@ -105,6 +137,94 @@ static int amd64_linux_gregset32_reg_off
  };
  
  
@@ -191,7 +191,7 @@
  /* Transfering the general-purpose registers between GDB, inferiors
     and core files.  */
  
-@@ -406,6 +526,11 @@ _initialize_amd64_linux_nat (void)
+@@ -529,6 +649,11 @@ _initialize_amd64_linux_nat (void)
    t->to_fetch_registers = amd64_linux_fetch_inferior_registers;
    t->to_store_registers = amd64_linux_store_inferior_registers;
  
@@ -202,11 +202,11 @@
 +
    /* Register the target.  */
    linux_nat_add_target (t);
- }
-Index: gdb-6.5/gdb/config.in
+ 
+Index: gdb-6.6/gdb/config.in
 ===================================================================
---- gdb-6.5.orig/gdb/config.in	8 Aug 2006 20:32:15 -0000	1.84
-+++ gdb-6.5/gdb/config.in	1 Oct 2006 16:22:42 -0000
+--- gdb-6.6.orig/gdb/config.in	2006-08-08 22:32:15.000000000 +0200
++++ gdb-6.6/gdb/config.in	2007-01-20 06:56:21.000000000 +0100
 @@ -373,6 +373,9 @@
  /* Define to 1 if you have the <sys/poll.h> header file. */
  #undef HAVE_SYS_POLL_H
@@ -227,11 +227,11 @@
  /* Define to 1 if you have the <sys/user.h> header file. */
  #undef HAVE_SYS_USER_H
  
-Index: gdb-6.5/gdb/configure
+Index: gdb-6.6/gdb/configure
 ===================================================================
---- gdb-6.5.orig/gdb/configure	2006-10-01 18:43:40.000000000 +0200
-+++ gdb-6.5/gdb/configure	2006-10-01 18:40:44.000000000 +0200
-@@ -11949,6 +11949,157 @@
+--- gdb-6.6.orig/gdb/configure	2007-01-20 06:43:00.000000000 +0100
++++ gdb-6.6/gdb/configure	2007-01-20 06:56:21.000000000 +0100
+@@ -9966,6 +9966,157 @@ done
  
  
  
@@ -389,11 +389,11 @@
  for ac_header in sys/wait.h wait.h
  do
  as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-Index: gdb-6.5/gdb/configure.ac
+Index: gdb-6.6/gdb/configure.ac
 ===================================================================
---- gdb-6.5.orig/gdb/configure.ac	8 Aug 2006 20:26:23 -0000	1.34
-+++ gdb-6.5/gdb/configure.ac	1 Oct 2006 16:22:43 -0000
-@@ -365,6 +365,7 @@ AC_CHECK_HEADERS(sys/user.h, [], [],
+--- gdb-6.6.orig/gdb/configure.ac	2007-01-20 06:43:01.000000000 +0100
++++ gdb-6.6/gdb/configure.ac	2007-01-20 06:56:21.000000000 +0100
+@@ -371,6 +371,7 @@ AC_CHECK_HEADERS(sys/user.h, [], [],
  # include <sys/param.h>
  #endif
  ])
@@ -401,11 +401,11 @@
  AC_CHECK_HEADERS(sys/wait.h wait.h)
  AC_CHECK_HEADERS(termios.h termio.h sgtty.h)
  AC_CHECK_HEADERS(unistd.h)
-Index: gdb-6.5/gdb/gcore.c
+Index: gdb-6.6/gdb/gcore.c
 ===================================================================
---- gdb-6.5.orig/gdb/gcore.c	17 Dec 2005 22:33:59 -0000	1.18
-+++ gdb-6.5/gdb/gcore.c	1 Oct 2006 16:22:43 -0000
-@@ -314,6 +314,11 @@ gcore_create_callback (CORE_ADDR vaddr, 
+--- gdb-6.6.orig/gdb/gcore.c	2007-01-20 06:43:02.000000000 +0100
++++ gdb-6.6/gdb/gcore.c	2007-01-20 06:56:21.000000000 +0100
+@@ -320,6 +320,11 @@ gcore_create_callback (CORE_ADDR vaddr, 
    asection *osec;
    flagword flags = SEC_ALLOC | SEC_HAS_CONTENTS | SEC_LOAD;
  
@@ -417,10 +417,10 @@
    /* 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.5/gdb/gdb_procfs32.h
+Index: gdb-6.6/gdb/gdb_procfs32.h
 ===================================================================
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/gdb_procfs32.h	1 Oct 2006 16:22:43 -0000
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.6/gdb/gdb_procfs32.h	2007-01-20 06:56:21.000000000 +0100
 @@ -0,0 +1,128 @@
 +#ifdef HAVE_SYS_PROCFS32_H
 +#include <sys/procfs32.h>
@@ -550,10 +550,10 @@
 +#endif	/* _SYS_PROCFS32_H */
 +
 +#endif /* HAVE_SYS_PROCFS32_H */
-Index: gdb-6.5/gdb/gdb_user32.h
+Index: gdb-6.6/gdb/gdb_user32.h
 ===================================================================
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/gdb_user32.h	1 Oct 2006 16:22:43 -0000
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.6/gdb/gdb_user32.h	2007-01-20 06:56:21.000000000 +0100
 @@ -0,0 +1,108 @@
 +#ifdef HAVE_SYS_USER32_H
 +#include <sys/user32.h>
@@ -663,11 +663,11 @@
 +#endif	/* _SYS_USER32_H */
 +
 +#endif /* HAVE_SYS_USER32_H */
-Index: gdb-6.5/gdb/linux-nat.c
+Index: gdb-6.6/gdb/linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/linux-nat.c	16 Sep 2006 09:48:12 -0000	1.50
-+++ gdb-6.5/gdb/linux-nat.c	1 Oct 2006 16:22:43 -0000
-@@ -99,6 +99,15 @@ static LONGEST (*super_xfer_partial) (st
+--- gdb-6.6.orig/gdb/linux-nat.c	2007-01-20 06:43:04.000000000 +0100
++++ gdb-6.6/gdb/linux-nat.c	2007-01-20 06:56:21.000000000 +0100
+@@ -100,6 +100,15 @@ static LONGEST (*super_xfer_partial) (st
  				      const gdb_byte *,
  				      ULONGEST, LONGEST);
  
@@ -683,7 +683,7 @@
  static int debug_linux_nat;
  static void
  show_debug_linux_nat (struct ui_file *file, int from_tty,
-@@ -2562,11 +2571,11 @@ linux_nat_do_thread_registers (bfd *obfd
+@@ -2715,11 +2724,11 @@ linux_nat_do_thread_registers (bfd *obfd
    else
      fill_gregset (&gregs, -1);
  
@@ -700,7 +700,7 @@
  
    if (core_regset_p
        && (regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
-@@ -2577,10 +2586,10 @@ linux_nat_do_thread_registers (bfd *obfd
+@@ -2730,10 +2739,10 @@ linux_nat_do_thread_registers (bfd *obfd
    else
      fill_fpregset (&fpregs, -1);
  
@@ -715,7 +715,7 @@
  
  #ifdef FILL_FPXREGSET
    if (core_regset_p
-@@ -2675,9 +2684,9 @@ linux_nat_make_corefile_notes (bfd *obfd
+@@ -2828,9 +2837,9 @@ linux_nat_make_corefile_notes (bfd *obfd
  	  strncat (psargs, get_inferior_args (),
  		   sizeof (psargs) - strlen (psargs));
  	}
@@ -728,11 +728,11 @@
      }
  
    /* Dump information for threads.  */
-Index: gdb-6.5/gdb/linux-nat.h
+Index: gdb-6.6/gdb/linux-nat.h
 ===================================================================
---- gdb-6.5.orig/gdb/linux-nat.h	23 Jul 2006 21:21:01 -0000	1.12
-+++ gdb-6.5/gdb/linux-nat.h	1 Oct 2006 16:22:43 -0000
-@@ -96,3 +96,12 @@ void linux_nat_add_target (struct target
+--- gdb-6.6.orig/gdb/linux-nat.h	2007-01-20 06:42:58.000000000 +0100
++++ gdb-6.6/gdb/linux-nat.h	2007-01-20 06:56:21.000000000 +0100
+@@ -108,3 +108,12 @@ void linux_nat_add_target (struct target
  /* Update linux-nat internal state when changing from one fork
     to another.  */
  void linux_nat_switch_fork (ptid_t new_ptid);

gdb-6.5-symbols-overlap.patch:
 ./gdb/minsyms.c                                |   23 +++++++
 ./gdb/testsuite/gdb.arch/i386-size-overlap.c   |   53 ++++++++++++++++
 ./gdb/testsuite/gdb.arch/i386-size-overlap.exp |   79 +++++++++++++++++++++++++
 gdb/testsuite/gdb.arch/i386-size-overlap.exp   |    0 
 4 files changed, 155 insertions(+)

Index: gdb-6.5-symbols-overlap.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb-6.5-symbols-overlap.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-symbols-overlap.patch	2 Nov 2006 22:58:41 -0000	1.1
+++ gdb-6.5-symbols-overlap.patch	21 Jan 2007 01:53:01 -0000	1.2
@@ -9,24 +9,14 @@
 	file, provide nested (overlapping) functions for the PC resolving.
 
 
---- gdb-6.5/gdb/minsyms.c-orig	2006-10-31 08:21:32.000000000 -0500
-+++ gdb-6.5/gdb/minsyms.c	2006-10-31 08:24:37.000000000 -0500
-@@ -464,6 +464,7 @@
- 	         objfile's minimal symbol table.  See if it is the best one
- 	         overall. */
+Index: ./gdb/minsyms.c
+===================================================================
+--- ./gdb/minsyms.c	17 Oct 2006 20:17:44 -0000	1.47
++++ ./gdb/minsyms.c	30 Oct 2006 12:41:26 -0000
+@@ -511,6 +511,29 @@ lookup_minimal_symbol_by_pc_section (COR
+ 		      continue;
+ 		    }
  
-+	      while (0
- 	      /* Skip any absolute symbols.  This is apparently what adb
- 	         and dbx do, and is needed for the CM-5.  There are two
- 	         known possible problems: (1) on ELF, apparently end, edata,
-@@ -473,8 +474,27 @@
- 	         NeXT are absolute.  If we want special handling for this
- 	         it probably should be triggered by a special
- 	         mst_abs_or_lib or some such.  */
--	      while (hi >= 0
--		     && msymbol[hi].type == mst_abs)
-+		     || (hi >= 0
-+			 && msymbol[hi].type == mst_abs)
 +		  /* We are behind the current symbol's size.
 +		     Try the previous symbol - if it is non-zero sized one it
 +		     may overlap the current one and reach our PC.
@@ -39,16 +29,20 @@
 +		     Limit it only for the overlapping cases as we could harm
 +		     the zero-sized symbols detection logic around.
 +		     */
-+		     || (hi > 0
-+			 && MSYMBOL_SIZE (&msymbol[hi]) != 0
-+			 && pc >= (SYMBOL_VALUE_ADDRESS (&msymbol[hi])
-+				   + MSYMBOL_SIZE (&msymbol[hi]))
-+			 && pc < (SYMBOL_VALUE_ADDRESS (&msymbol[hi - 1])
-+				  + MSYMBOL_SIZE (&msymbol[hi - 1])))
-+		     )
- 		--hi;
- 
- 	      /* If "section" specified, skip any symbol from wrong section */
++		  if (hi > 0
++		      && MSYMBOL_SIZE (&msymbol[hi]) != 0
++		      && pc >= (SYMBOL_VALUE_ADDRESS (&msymbol[hi])
++				+ MSYMBOL_SIZE (&msymbol[hi]))
++		      && pc < (SYMBOL_VALUE_ADDRESS (&msymbol[hi - 1])
++			       + MSYMBOL_SIZE (&msymbol[hi - 1])))
++		    {
++		      hi--;
++		      continue;
++		    }
++
+ 		  /* Otherwise, this symbol must be as good as we're going
+ 		     to get.  */
+ 		  break;
 Index: ./gdb/testsuite/gdb.arch/i386-size-overlap.c
 ===================================================================
 --- /dev/null	1 Jan 1970 00:00:00 -0000
@@ -107,10 +101,10 @@
 +    "    mov   %esp, %ebp\n"
 +    "    call  " SYMBOL (trap) "\n"
 +    "    .size " SYMBOL (main) ", .-" SYMBOL (main) "\n");
-Index: ./gdb/testsuite/gdb.arch/i386-size-overlap.exp
+Index: gdb/testsuite/gdb.arch/i386-size-overlap.exp
 ===================================================================
 RCS file: gdb/testsuite/gdb.arch/i386-size-overlap.exp
-diff -N gdb/testsuite/gdb.arch/i386-size-overlap.exp
+diff -N ./gdb/testsuite/gdb.arch/i386-size-overlap.exp
 --- /dev/null	1 Jan 1970 00:00:00 -0000
 +++ ./gdb/testsuite/gdb.arch/i386-size-overlap.exp	30 Oct 2006 12:41:35 -0000
 @@ -0,0 +1,79 @@


Index: gdb.spec
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -r1.217 -r1.218
--- gdb.spec	15 Jan 2007 21:08:52 -0000	1.217
+++ gdb.spec	21 Jan 2007 01:53:01 -0000	1.218
@@ -8,19 +8,19 @@
 # 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.5
+Version: 6.6
 
-# The release always contains a leading reserved number, start it at 0.
-Release: 27%{?dist}
+# The release always contains a leading reserved number, start it at 1.
+Release: 1%{?dist}
 
 License: GPL
 Group: Development/Debuggers
-Source: ftp://ftp.gnu.org/gnu/gdb/gdb-6.5.tar.bz2
+Source: ftp://ftp.gnu.org/gnu/gdb/gdb-6.6.tar.bz2
 Buildroot: %{_tmppath}/%{name}-%{version}-root
 URL: http://gnu.org/software/gdb/
 
 # For our convenience
-%define gdb_src gdb-6.5
+%define gdb_src gdb-6.6
 %define gdb_build %{gdb_src}/build-%{_target_platform}
 
 # Make sure we get rid of the old package gdb64, now that we have unified
@@ -29,7 +29,7 @@
 Obsoletes: gdb64
 %endif
 
-# GDB patches have the format gdb-<version>-<desc>-<YYYYMMDD>.patch;
+# GDB patches have the format gdb-<version>-bz<red-hat-bz-#>-<desc>.patch;
 # should include the ChangeLog.RedHat change-log entry; and should be
 # created using diff -u ./gdb (not gdb-6.3/gdb).
 
@@ -189,12 +189,6 @@
 # Allow option to continue backtracing past a zero pc value
 Patch170: gdb-6.3-bt-past-zero-20051201.patch
 
-# Enable gdb to recognize stack frames annotated with the "S" augmentation.
-Patch173: gdb-6.3-augmS-20060303.patch
-
-# Enable gdb to recognize CFA value expressions introduced in Dwarf3.
-Patch174: gdb-6.3-cfaval-20060303.patch
-
 # Use bigger numbers than int.
 Patch176: gdb-6.3-large-core-20051206.patch
 
@@ -209,33 +203,18 @@
 # ia32el.
 Patch179: gdb-6.3-ia32el-fix-waitpid-20060615.patch
 
-# Backport GNU .hash support.
-Patch180: gdb-6.5-bfd-hash-style-20060714.patch
-
 # Bugfix segv on the source display by ^X 1 (fixes Patch130, BZ 200048).
 Patch181: gdb-6.5-bz200048-find_line_pc-segv.patch
 
-# Fix exec() from threaded program, partial CVS backport (BZ 182116).
-Patch183: gdb-6.3-bz182116-exec-from-pthread.patch
-
-# Fix occasional failure to load shared libraries (BZ 146810).
-Patch184: gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch
-
 # Bugfix object names completion (fixes Patch116, BZ 193763).
 Patch185: gdb-6.3-bz193763-object-name-completion.patch
 
-# Avoid crash of 'info threads' if stale threads exist (BZ 195429).
-Patch186: gdb-6.5-bz195429-stale-threads-crash.patch
-
-# Handle corrupted or missing location list information (BZ 196439).
-Patch187: gdb-6.5-bz196439-valgrind-memcheck-compat.patch
+# Testcase for corrupted or missing location list information (BZ 196439).
+Patch187: gdb-6.5-bz196439-valgrind-memcheck-compat-test.patch
 
 # Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661).
 Patch188: gdb-6.5-bz203661-emit-relocs.patch
 
-# Add support for memory nops on x86.
-Patch189: gdb-6.5-opcodes-i386-nopmem.patch
-
 # Security patch: avoid stack overflows in dwarf expression computation.
 # CVE-2006-4146
 Patch190: gdb-6.5-dwarf-stack-overflow.patch
@@ -243,9 +222,6 @@
 # Fix gdb printf command argument using "%p" (BZ 205551).
 Patch191: gdb-6.5-bz205551-printf-p.patch
 
-# Fix crash on C++ symbol failing to be demangled (BZ 206813).
-Patch192: gdb-6.5-bz206813-cplusplus-symbol-null.patch
-
 # Fix attach to stopped process, supersede `gdb-6.3-attach-stop-20051011.patch'.
 # Fix attachment also to a threaded stopped process (BZ 219118).
 Patch193: gdb-6.5-attach-stop.patch
@@ -258,16 +234,12 @@
 Patch195: gdb-6.5-tls-of-separate-debuginfo.patch
 
 # Fix TLS symbols resolving for shared libraries with a relative pathname.
-# The testsuite needs `gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch'.
 # The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
 Patch196: gdb-6.5-sharedlibrary-path.patch
 
 # Support IPv6 for gdbserver (BZ 198365).
 Patch197: gdb-6.5-bz198365-IPv6.patch
 
-# No longer disassemble invalid i386 opcodes of movQ/movA (BZ 172034).
-Patch198: gdb-6.5-bz172034-disasm-i386-C6-C7.patch
-
 # Suggest fixing your target architecture for gdbserver(1) (BZ 190810).
 # FIXME: It could be autodetected.
 Patch199: gdb-6.5-bz190810-gdbserver-arch-advice.patch 
@@ -278,13 +250,10 @@
 # Fix `gcore' command for 32bit inferiors on 64bit hosts.
 Patch201: gdb-6.5-gcore-i386-on-amd64.patch
 
-# Fix deadlock accessing last address space byte; for corrupted backtraces.
-Patch203: gdb-6.5-last-address-space-byte.patch
+# Testcase for deadlocking on last address space byte; for corrupted backtraces.
 Patch211: gdb-6.5-last-address-space-byte-test.patch
 
 # Fix "??" resolving of symbols from (non-prelinked) debuginfo packages.
-# "gdb-6.5-matching_bfd_sections.patch" is a prerequisited CVS backport.
-Patch205: gdb-6.5-matching_bfd_sections.patch
 Patch206: gdb-6.5-relativedebug.patch
 
 # Fix "??" resolving of symbols from overlapping functions (nanosleep(3)).
@@ -330,6 +299,13 @@
 # Fix missing testsuite .log output of testcases using get_compiler_info().
 Patch230: gdb-6.5-testsuite-log.patch
 
+# Testcase for exec() from threaded program (BZ 202689).
+Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
+
+# Backported post gdb-6.6 release ia64 unwinding fixups.
+Patch232: gdb-6.6-ia64-kernel-unwind.patch
+Patch233: gdb-6.6-ia64-pc-unwind.patch
+
 BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
 BuildRequires: flex bison sharutils
 
@@ -413,35 +389,24 @@
 %patch166 -p1
 %patch169 -p1
 %patch170 -p1
-%patch173 -p1
-%patch174 -p1
 %patch176 -p1
 %patch177 -p1
 %patch178 -p1
 %patch179 -p1
-%patch180 -p1
 %patch181 -p1
-%patch183 -p1
-%patch184 -p1
 %patch185 -p1
-%patch186 -p1
 %patch187 -p1
 %patch188 -p1
-%patch189 -p1
 %patch190 -p1
 %patch191 -p1
-%patch192 -p1
 %patch193 -p1
 %patch194 -p1
 %patch195 -p1
 %patch196 -p1
 #%patch197 -p1
-%patch198 -p1
 %patch199 -p1
 %patch200 -p1
 %patch201 -p1
-%patch203 -p1
-%patch205 -p1
 %patch206 -p1
 %patch207 -p1
 %patch208 -p1
@@ -463,6 +428,9 @@
 %patch228 -p1
 %patch229 -p1
 %patch230 -p1
+%patch231 -p1
+%patch232 -p1
+%patch233 -p1
 
 # Change the version that gets printed at GDB startup, so it is RedHat
 # specific.
@@ -625,6 +593,11 @@
 # don't include the files in include, they are part of binutils
 
 %changelog
+* Sat Jan 20 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.6-1
+- Upgrade to GDB 6.6.  Drop redundant patches, forward-port remaining ones.
+- Backported post gdb-6.6 release ia64 unwinding fixups.
+- Testcase for exec() from threaded program (BZ 202689).
+
 * Mon Jan 15 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.5-27
 - Fix the testsuite results broken in 6.5-26, stop invalid testsuite runs.
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gdb/devel/sources,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- sources	11 Jul 2006 06:33:02 -0000	1.20
+++ sources	21 Jan 2007 01:53:01 -0000	1.21
@@ -1 +1 @@
-af6c8335230d7604aee0803b1df14f54  gdb-6.5.tar.bz2
+a4df41d28dd514d64e8ccbfe125fd9a6  gdb-6.6.tar.bz2


--- gdb-6.3-augmS-20060303.patch DELETED ---


--- gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch DELETED ---


--- gdb-6.3-cfaval-20060303.patch DELETED ---


--- gdb-6.5-bfd-hash-style-20060714.patch DELETED ---


--- gdb-6.5-bz172034-disasm-i386-C6-C7.patch DELETED ---


--- gdb-6.5-bz195429-stale-threads-crash.patch DELETED ---


--- gdb-6.5-bz196439-valgrind-memcheck-compat.patch DELETED ---


--- gdb-6.5-bz206813-cplusplus-symbol-null.patch DELETED ---


--- gdb-6.5-last-address-space-byte.patch DELETED ---


--- gdb-6.5-matching_bfd_sections.patch DELETED ---


--- gdb-6.5-opcodes-i386-nopmem.patch DELETED ---




More information about the fedora-cvs-commits mailing list