rpms/gdb/devel gdb-6.7-charsign-test.patch, NONE, 1.1 gdb-6.7-reread-exec_bfd.patch, NONE, 1.1 gdb-6.7-upstream.patch, NONE, 1.1 .cvsignore, 1.22, 1.23 gdb-6.3-bt-past-zero-20051201.patch, 1.2, 1.3 gdb-6.3-constructor-20041216.patch, 1.1, 1.2 gdb-6.3-ctorline-20050120.patch, 1.5, 1.6 gdb-6.3-dtorfix-20050121.patch, 1.3, 1.4 gdb-6.3-ia64-gcore-page0-20050421.patch, 1.3, 1.4 gdb-6.3-ia64-sigaltstack-20050711.patch, 1.1, 1.2 gdb-6.3-ia64-sigtramp-fp-20050926.patch, 1.2, 1.3 gdb-6.3-large-core-20051206.patch, 1.3, 1.4 gdb-6.3-linespec-20041213.patch, 1.4, 1.5 gdb-6.3-nonthreaded-wp-20050117.patch, 1.5, 1.6 gdb-6.3-pie-20050110.patch, 1.3, 1.4 gdb-6.3-ppcdotsolib-20041022.patch, 1.1, 1.2 gdb-6.3-sepcrc-20050402.patch, 1.1, 1.2 gdb-6.3-terminal-fix-20050214.patch, 1.2, 1.3 gdb-6.3-test-dtorfix-20050121.patch, 1.5, 1.6 gdb-6.3-test-pie-20050107.patch, 1.2, 1.3 gdb-6.3-threaded-watchpoints-20041213.patch, 1.6, 1.7 gdb-6.3-threaded-watchpoints2-20050225.patch, 1.4, 1.5 gdb-6.3-warnings-20050317.patch, 1.6, 1.7 gdb-6.5-bz181390-memory-address-width.patch, 1.1, 1.2 gdb-6.5-bz216711-clone-is-outermost.patch, 1.1, 1.2 gdb-6.5-bz237872-ppc-long-double.patch, 1.1, 1.2 gdb-6.5-dwarf-stack-overflow.patch, 1.1.1.2, 1.2 gdb-6.5-gcore-i386-on-amd64.patch, 1.2, 1.3 gdb-6.5-sharedlibrary-path.patch, 1.1, 1.2 gdb-6.6-buildid-locate.patch, 1.4, 1.5 gdb-6.6-bz225783-prelink-path.patch, 1.1, 1.2 gdb-6.6-readline-system.patch, 1.1, 1.2 gdb-6.6-vdso-i386-on-amd64-warning.patch, 1.1, 1.2 gdb.spec, 1.254, 1.255 sources, 1.21, 1.22 gdb-6.3-bz140532-ppc-unwinding-fix.patch, 1.1, NONE gdb-6.3-ia64-vsyscall-20050330.patch, 1.2, NONE gdb-6.5-bz109921-DW_AT_decl_file-fix.patch, 1.2, NONE gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch, 1.1, NONE gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch, 1.1, NONE gdb-6.5-bz205551-printf-p.patch, 1.1, NONE gdb-6.5-bz215816-readline-from-callback-test.patch, 1.2, NONE gdb-6.5-bz215816-readline-from-callback.patch, 1.2, NONE gdb-6.5-relativedebug.patch, 1.1, NONE gdb-6.5-symbols-overlap.patch, 1.2, NONE gdb-6.5-testsuite-log.patch, 1.2, NONE gdb-6.6-bfd-core-dump_elf_headers.patch, 1.2, NONE gdb-6.6-buildid-verify.patch, 1.1, NONE gdb-6.6-bz232015-gcore-ppc-on-ppc64.patch, 1.1, NONE gdb-6.6-bz233716-empty-structure-override.patch, 1.1, NONE gdb-6.6-bz237572-ppc-atomic-sequence-upstream.patch, 1.1, NONE gdb-6.6-bz238285-gcore-strings-overflow.patch, 1.1, NONE gdb-6.6-glibc-open-fcntl2-compat.patch, 1.1, NONE gdb-6.6-libunwind-major-version.patch, 1.1, NONE gdb-6.6-upstream.patch, 1.10, NONE

Jan Kratochvil (jkratoch) fedora-extras-commits at redhat.com
Thu Nov 1 20:25:12 UTC 2007


Author: jkratoch

Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9716

Modified Files:
	.cvsignore gdb-6.3-bt-past-zero-20051201.patch 
	gdb-6.3-constructor-20041216.patch 
	gdb-6.3-ctorline-20050120.patch gdb-6.3-dtorfix-20050121.patch 
	gdb-6.3-ia64-gcore-page0-20050421.patch 
	gdb-6.3-ia64-sigaltstack-20050711.patch 
	gdb-6.3-ia64-sigtramp-fp-20050926.patch 
	gdb-6.3-large-core-20051206.patch 
	gdb-6.3-linespec-20041213.patch 
	gdb-6.3-nonthreaded-wp-20050117.patch 
	gdb-6.3-pie-20050110.patch gdb-6.3-ppcdotsolib-20041022.patch 
	gdb-6.3-sepcrc-20050402.patch 
	gdb-6.3-terminal-fix-20050214.patch 
	gdb-6.3-test-dtorfix-20050121.patch 
	gdb-6.3-test-pie-20050107.patch 
	gdb-6.3-threaded-watchpoints-20041213.patch 
	gdb-6.3-threaded-watchpoints2-20050225.patch 
	gdb-6.3-warnings-20050317.patch 
	gdb-6.5-bz181390-memory-address-width.patch 
	gdb-6.5-bz216711-clone-is-outermost.patch 
	gdb-6.5-bz237872-ppc-long-double.patch 
	gdb-6.5-dwarf-stack-overflow.patch 
	gdb-6.5-gcore-i386-on-amd64.patch 
	gdb-6.5-sharedlibrary-path.patch gdb-6.6-buildid-locate.patch 
	gdb-6.6-bz225783-prelink-path.patch 
	gdb-6.6-readline-system.patch 
	gdb-6.6-vdso-i386-on-amd64-warning.patch gdb.spec sources 
Added Files:
	gdb-6.7-charsign-test.patch gdb-6.7-reread-exec_bfd.patch 
	gdb-6.7-upstream.patch 
Removed Files:
	gdb-6.3-bz140532-ppc-unwinding-fix.patch 
	gdb-6.3-ia64-vsyscall-20050330.patch 
	gdb-6.5-bz109921-DW_AT_decl_file-fix.patch 
	gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch 
	gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch 
	gdb-6.5-bz205551-printf-p.patch 
	gdb-6.5-bz215816-readline-from-callback-test.patch 
	gdb-6.5-bz215816-readline-from-callback.patch 
	gdb-6.5-relativedebug.patch gdb-6.5-symbols-overlap.patch 
	gdb-6.5-testsuite-log.patch 
	gdb-6.6-bfd-core-dump_elf_headers.patch 
	gdb-6.6-buildid-verify.patch 
	gdb-6.6-bz232015-gcore-ppc-on-ppc64.patch 
	gdb-6.6-bz233716-empty-structure-override.patch 
	gdb-6.6-bz237572-ppc-atomic-sequence-upstream.patch 
	gdb-6.6-bz238285-gcore-strings-overflow.patch 
	gdb-6.6-glibc-open-fcntl2-compat.patch 
	gdb-6.6-libunwind-major-version.patch gdb-6.6-upstream.patch 
Log Message:
* Thu Nov  1 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.7-1
- Upgrade to GDB 6.7.  Drop redundant patches, forward-port remaining ones.
- Fix rereading of the main executable on its change.


gdb-6.7-charsign-test.patch:

--- NEW FILE gdb-6.7-charsign-test.patch ---
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=224128

2007-01-25  Jan Kratochvil <jan.kratochvil at redhat.com>

	* gdb.base/charsign.exp, gdb.base/charsign.c: New files.
	[ stripped ]

2007-10-19  Jan Kratochvil <jan.kratochvil at redhat.com>

	Port to GDB-6.7 - only the testcase left, patch has been reverted,
	char-vectors restricted.

--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.base/charsign.c	26 Jan 2007 10:32:00 -0000
@@ -0,0 +1,37 @@
+/* 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.
+
+   Please email any bugs, comments, and/or additions to this file to:
+   bug-gdb at prep.ai.mit.edu  */
+
+int main()
+{
+  return 0;
+}
+
+char n[]="A";
+signed char s[]="A";
+unsigned char u[]="A";
+
+typedef char char_n;
+typedef signed char char_s;
+typedef unsigned char char_u;
+
+char_n n_typed[]="A";
+char_s s_typed[]="A";
+char_u u_typed[]="A";
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ./gdb/testsuite/gdb.base/charsign.exp	26 Jan 2007 10:32:00 -0000
@@ -0,0 +1,70 @@
+# 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.  
+
+if $tracelevel then {
+    strace $tracelevel
+}
+
+set prms_id 0
+set bug_id 0
+
+set testfile charsign
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+proc do_test { cflags } {
+    global srcdir
+    global binfile
+    global subdir
+    global srcfile
+    global gdb_prompt
+
+    if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug additional_flags=$cflags]] != "" } {
+	untested "Couldn't compile test program"
+	return -1
+    }
+
+    # Get things started.
+
+    gdb_exit
+    gdb_start
+    gdb_reinitialize_dir $srcdir/$subdir
+    gdb_load ${binfile}
+
+    # For C programs, "start" should stop in main().
+
+    gdb_test "p n" \
+	     "= \"A\""
+    gdb_test "p s" \
+	     "= \\{65 'A', 0 '\\\\0'\\}"
+    gdb_test "p u" \
+	     "= \\{65 'A', 0 '\\\\0'\\}"
+    gdb_test "p n_typed" \
+	     "= \"A\""
+    gdb_test "p s_typed" \
+	     "= \\{65 'A', 0 '\\\\0'\\}"
+    gdb_test "p u_typed" \
+	     "= \\{65 'A', 0 '\\\\0'\\}"
+}
+
+# The string identification works despite the compiler flags below due to
+# gdbtypes.c:
+#   if (name && strcmp (name, "char") == 0)
+#     TYPE_FLAGS (type) |= TYPE_FLAG_NOSIGN;
+
+do_test {}
+do_test {-fsigned-char}
+do_test {-funsigned-char}

gdb-6.7-reread-exec_bfd.patch:

--- NEW FILE gdb-6.7-reread-exec_bfd.patch ---
2007-10-29  Jan Kratochvil  <jan.kratochvil at redhat.com>

	* symfile.c (reread_symbols): Reread also EXEC_BFD if changed.

Testcase: Regressed by the gdb-6.7 version of `gdb-6.3-pie-20050110.patch':
 Running ../../../gdb/testsuite/gdb.base/reread.exp ...
 PASS: gdb.base/reread.exp: breakpoint foo in first file (PRMS 13484)
 PASS: gdb.base/reread.exp: run to foo() (PRMS 13484)
-PASS: gdb.base/reread.exp: run to foo() second time
+FAIL: gdb.base/reread.exp: run to foo() second time
 PASS: gdb.base/reread.exp: second pass: breakpoint foo in first file
-PASS: gdb.base/reread.exp: second pass: run to foo()
-PASS: gdb.base/reread.exp: second pass: continue to completion
-PASS: gdb.base/reread.exp: second pass: run to foo() second time
+FAIL: gdb.base/reread.exp: second pass: run to foo()
+FAIL: gdb.base/reread.exp: second pass: continue to completion
+FAIL: gdb.base/reread.exp: second pass: run to foo() second time

--- gdb-6.7-orig/gdb/symfile.c	2007-10-29 01:04:35.000000000 +0100
+++ gdb-6.7-patched/gdb/symfile.c	2007-10-29 01:03:13.000000000 +0100
@@ -2810,6 +2810,33 @@ reread_symbols (void)
 	      /* We need to do this whenever any symbols go away.  */
 	      make_cleanup (clear_symtab_users_cleanup, 0 /*ignore*/);
 
+	      if (exec_bfd != NULL && strcmp (bfd_get_filename (objfile->obfd),
+					      bfd_get_filename (exec_bfd)) == 0)
+		{
+		  char *exec_filename = bfd_get_filename (exec_bfd);
+		  bfd *exec_bfd_new;
+
+		  /* We have to leak the memory here as there are stale
+		     references to EXEC_BFD, at least by
+		     `(struct section_table *)->bfd'.  So far we need to update
+		     only START_ADDRESS there.  */
+#if 0
+		  if (!bfd_close (exec_bfd))
+		    error (_("Can't close BFD for %s: %s"), exec_filename,
+			   bfd_errmsg (bfd_get_error ()));
+#endif
+		  exec_bfd_new = bfd_openr (exec_filename, gnutarget);
+		  if (exec_bfd_new == NULL)
+		    error (_("Can't open %s as a new main executable."),
+			   exec_filename);
+		  /* bfd_openr sets cacheable to true, which is what we want.  */
+		  if (!bfd_check_format (exec_bfd_new, bfd_object))
+		    error (_("Can't reopen the main executable %s: %s."),
+			   exec_filename, bfd_errmsg (bfd_get_error ()));
+		  /* FIXME: The non-freeing hack.  */
+		  memcpy (exec_bfd, exec_bfd_new, sizeof (*exec_bfd));
+		}
+
 	      /* Clean up any state BFD has sitting around.  We don't need
 	         to close the descriptor but BFD lacks a way of closing the
 	         BFD without closing the descriptor.  */

gdb-6.7-upstream.patch:

--- NEW FILE gdb-6.7-upstream.patch ---
2007-09-15  Alan Modra  <amodra at bigpond.net.au>

	* configure.ac: Correct makeinfo version check.
	* configure: Regenerate.

#--- ./configure.ac	14 Sep 2007 14:51:36 -0000	1.25
#+++ ./configure.ac	14 Sep 2007 15:47:01 -0000	1.26
#@@ -2462,7 +2462,7 @@ changequote(,)
#     # For an installed makeinfo, we require it to be from texinfo 4.4 or
#     # higher, else we use the "missing" dummy.
#     if ${MAKEINFO} --version \
#-       | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
#+       | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
#       :
#     else
#       MAKEINFO="$MISSING makeinfo"
--- ./configure	14 Sep 2007 14:51:36 -0000	1.277
+++ ./configure	14 Sep 2007 15:47:01 -0000	1.278
@@ -6192,7 +6192,7 @@ case " $build_configdirs " in
     # For an installed makeinfo, we require it to be from texinfo 4.4 or
     # higher, else we use the "missing" dummy.
     if ${MAKEINFO} --version \
-       | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
+       | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
       :
     else
       MAKEINFO="$MISSING makeinfo"



Fix:
	FAIL: gdb.arch/powerpc-power6.exp: Power6 disassembly dsub
	FAIL: gdb.arch/powerpc-power6.exp: Power6 disassembly dmul
	FAIL: gdb.arch/powerpc-power6.exp: Power6 disassembly ddiv
	FAIL: gdb.arch/powerpc-power6.exp: Power6 disassembly dcmpu
	
2007-10-15  Peter Bergner  <bergner at vnet.ibm.com>

	* ppc-opc.c (powerpc_opcodes): Fix the first two operands of
	dquaiq. to use the TE and FRT macros.

--- ./opcodes/ppc-opc.c	16 Oct 2007 02:26:30 -0000	1.100
+++ ./opcodes/ppc-opc.c	16 Oct 2007 02:55:30 -0000	1.101
@@ -4680,7 +4680,7 @@ const struct powerpc_opcode powerpc_opco
 { "dscliq.", ZRC(63,66,1), Z_MASK,	POWER6,		{ FRT, FRA, SH16 } },
 
 { "dquaiq",  ZRC(63,67,0), Z2_MASK,	POWER6,		{ TE,  FRT, FRB, RMC } },
-{ "dquaiq.", ZRC(63,67,1), Z2_MASK,	POWER6,		{ FRT, FRA, FRB, RMC } },
+{ "dquaiq.", ZRC(63,67,1), Z2_MASK,	POWER6,		{ TE,  FRT, FRB, RMC } },
 
 { "mtfsb0",  XRC(63,70,0), XRARB_MASK,	COM,		{ BT } },
 { "mtfsb0.", XRC(63,70,1), XRARB_MASK,	COM,		{ BT } },

2007-10-15  Peter Bergner  <bergner at vnet.ibm.com>

	* ppc-opc.c (TE): Correct signedness.
	(powerpc_opcodes): Sort psq_st and psq_stu according to major
	opcode number.

--- ./opcodes/ppc-opc.c	24 Aug 2007 00:56:30 -0000	1.99
+++ ./opcodes/ppc-opc.c	16 Oct 2007 02:26:30 -0000	1.100
@@ -492,13 +492,13 @@ const struct powerpc_operand powerpc_ope
 #define VS VD
   { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
 
-  /* The SIMM field in a VX form instruction.  */
+  /* The SIMM field in a VX form instruction, and TE in Z form.  */
 #define SIMM VD + 1
+#define TE SIMM
   { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
 
-  /* The UIMM field in a VX form instruction, and TE in Z form.  */
+  /* The UIMM field in a VX form instruction.  */
 #define UIMM SIMM + 1
-#define TE UIMM
   { 0x1f, 16, NULL, NULL, 0 },
 
   /* The SHB field in a VA form instruction.  */
@@ -4495,9 +4495,6 @@ const struct powerpc_opcode powerpc_opco
 { "fnmadds", A(59,31,0), A_MASK,	PPC,		{ FRT,FRA,FRC,FRB } },
 { "fnmadds.",A(59,31,1), A_MASK,	PPC,		{ FRT,FRA,FRC,FRB } },
 
-{ "psq_st",  OP(60),    OP_MASK,        PPCPS,          { FRS, PSD, RA, PSW, PSQ } },
-{ "psq_stu", OP(61),    OP_MASK,        PPCPS,          { FRS, PSD, RA, PSW, PSQ } },
-
 { "dmul",    XRC(59,34,0), X_MASK,	POWER6,		{ FRT, FRA, FRB } },
 { "dmul.",   XRC(59,34,1), X_MASK,	POWER6,		{ FRT, FRA, FRB } },
 
@@ -4561,6 +4558,9 @@ const struct powerpc_opcode powerpc_opco
 
 { "stfq",    OP(60),	OP_MASK,	POWER2,		{ FRS, D, RA } },
 
+{ "psq_st",  OP(60),    OP_MASK,        PPCPS,          { FRS, PSD, RA, PSW, PSQ } },
+{ "psq_stu", OP(61),    OP_MASK,        PPCPS,          { FRS, PSD, RA, PSW, PSQ } },
+
 { "stfqu",   OP(61),	OP_MASK,	POWER2,		{ FRS, D, RA } },
 
 { "stfdp",   OP(61),	OP_MASK,	POWER6,		{ FRT, D, RA0 } },


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/.cvsignore,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- .cvsignore	21 Jan 2007 01:53:01 -0000	1.22
+++ .cvsignore	1 Nov 2007 20:24:20 -0000	1.23
@@ -1 +1 @@
-gdb-6.6.tar.bz2
+gdb-6.7.tar.bz2

gdb-6.3-bt-past-zero-20051201.patch:

Index: gdb-6.3-bt-past-zero-20051201.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-bt-past-zero-20051201.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-bt-past-zero-20051201.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-bt-past-zero-20051201.patch	1 Nov 2007 20:24:20 -0000	1.3
@@ -11,16 +11,14 @@
 
 	* setshow.exp: Add testing of "set backtrace past-zero-pc" option.
 
-Index: gdb-6.5/gdb/testsuite/gdb.base/setshow.exp
+2007-10-15  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/testsuite/gdb.base/setshow.exp
 ===================================================================
---- gdb-6.5.orig/gdb/testsuite/gdb.base/setshow.exp	2006-07-11 02:46:50.000000000 -0300
-+++ gdb-6.5/gdb/testsuite/gdb.base/setshow.exp	2006-07-11 02:47:24.000000000 -0300
-@@ -1,4 +1,4 @@
--# Copyright 1992, 1994, 1996, 1997, 1998, 2001, 2003
-+# Copyright 1992, 1994, 1996, 1997, 1998, 2001, 2003, 2005
- # Free Software Foundation, Inc.
- 
- # This program is free software; you can redistribute it and/or modify
+--- gdb-6.7.orig/gdb/testsuite/gdb.base/setshow.exp	2007-08-23 20:14:17.000000000 +0200
++++ gdb-6.7/gdb/testsuite/gdb.base/setshow.exp	2007-10-15 21:34:52.000000000 +0200
 @@ -106,6 +106,16 @@ if { ![target_info exists use_gdb_stub] 
      delete_breakpoints
      gdb_test "run" "Starting program:.*foo bar blup baz bubble.*" "passing args"
@@ -38,11 +36,11 @@
  #test set check range on
  gdb_test "set check range on" "" "set check range on" 
  #test show check range on
-Index: gdb-6.5/gdb/frame.c
+Index: gdb-6.7/gdb/frame.c
 ===================================================================
---- gdb-6.5.orig/gdb/frame.c	2006-07-11 02:46:50.000000000 -0300
-+++ gdb-6.5/gdb/frame.c	2006-07-11 02:51:20.000000000 -0300
-@@ -131,6 +131,16 @@ Whether backtraces should continue past 
+--- gdb-6.7.orig/gdb/frame.c	2007-10-12 22:35:58.000000000 +0200
++++ gdb-6.7/gdb/frame.c	2007-10-15 21:34:52.000000000 +0200
+@@ -133,6 +133,16 @@ Whether backtraces should continue past 
  		    value);
  }
  
@@ -59,7 +57,7 @@
  static int backtrace_past_entry;
  static void
  show_backtrace_past_entry (struct ui_file *file, int from_tty,
-@@ -1313,9 +1323,7 @@ get_prev_frame (struct frame_info *this_
+@@ -1483,9 +1493,7 @@ get_prev_frame (struct frame_info *this_
      }
  
    if (this_frame->level > 0
@@ -70,7 +68,7 @@
        && get_frame_type (this_frame) == NORMAL_FRAME
        && get_frame_type (get_next_frame (this_frame)) == NORMAL_FRAME
        && get_frame_pc (this_frame) == 0)
-@@ -1629,6 +1637,17 @@ the rest of the stack trace."),
+@@ -1850,6 +1858,17 @@ the rest of the stack trace."),
  			   &set_backtrace_cmdlist,
  			   &show_backtrace_cmdlist);
  

gdb-6.3-constructor-20041216.patch:

Index: gdb-6.3-constructor-20041216.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-constructor-20041216.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-constructor-20041216.patch	16 Dec 2004 21:54:10 -0000	1.1
+++ gdb-6.3-constructor-20041216.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -16,10 +16,10 @@
 +	  /* no decoration */
 +	  break;
 +	case gnu_v3_base_object_ctor:
-+	  d_append_string_constant (dpi, "$base");
++	  d_append_string (dpi, "$base");
 +	  break;
 +	case gnu_v3_complete_object_allocating_ctor:
-+	  d_append_string_constant (dpi, "$allocate");
++	  d_append_string (dpi, "$allocate");
 +	  break;
 +	}
        return;
@@ -30,13 +30,13 @@
 +      switch (dc->u.s_dtor.kind)
 +	{
 +	case gnu_v3_deleting_dtor:
-+	  d_append_string_constant (dpi, "$delete");
++	  d_append_string (dpi, "$delete");
 +	  break;
 +	case gnu_v3_complete_object_dtor:
 +	  /* no decoration */
 +	  break;
 +	case gnu_v3_base_object_dtor:
-+	  d_append_string_constant (dpi, "$base");
++	  d_append_string (dpi, "$base");
 +	  break;
 +	}
        return;

gdb-6.3-ctorline-20050120.patch:

Index: gdb-6.3-ctorline-20050120.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ctorline-20050120.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- gdb-6.3-ctorline-20050120.patch	5 Oct 2007 15:00:27 -0000	1.5
+++ gdb-6.3-ctorline-20050120.patch	1 Nov 2007 20:24:20 -0000	1.6
@@ -43,18 +43,15 @@
 	(breakpoint_re_set_one): New variables ID_S, ID, PC_LIST, NUM_PC_VALUES.
 	Parse the "%42" suffix of the multiple-PC breakpoints's ADDR_STRINGs.
 
-Index: gdb-6.5/gdb/mi/mi-cmd-disas.c
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/mi/mi-cmd-disas.c
 ===================================================================
---- gdb-6.5.orig/gdb/mi/mi-cmd-disas.c	2006-07-11 01:30:43.000000000 -0300
-+++ gdb-6.5/gdb/mi/mi-cmd-disas.c	2006-07-11 02:16:07.000000000 -0300
-@@ -1,5 +1,5 @@
- /* MI Command Set - disassemble commands.
--   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
-+   Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
-    Contributed by Cygnus Solutions (a Red Hat company).
- 
-    This file is part of GDB.
-@@ -145,11 +145,18 @@ mi_cmd_disassemble (char *command, char 
+--- gdb-6.7.orig/gdb/mi/mi-cmd-disas.c	2007-08-23 20:08:48.000000000 +0200
++++ gdb-6.7/gdb/mi/mi-cmd-disas.c	2007-10-14 23:26:23.000000000 +0200
+@@ -143,11 +143,18 @@ mi_cmd_disassemble (char *command, char 
  
    if (line_seen && file_seen)
      {
@@ -74,19 +71,11 @@
        if (find_pc_partial_function (start, NULL, &low, &high) == 0)
  	error (_("mi_cmd_disassemble: No function contains specified address"));
      }
-Index: gdb-6.5/gdb/tui/tui-layout.c
+Index: gdb-6.7/gdb/tui/tui-layout.c
 ===================================================================
---- gdb-6.5.orig/gdb/tui/tui-layout.c	2006-07-11 01:30:43.000000000 -0300
-+++ gdb-6.5/gdb/tui/tui-layout.c	2006-07-11 02:16:07.000000000 -0300
-@@ -1,6 +1,6 @@
- /* TUI layout window management.
- 
--   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
-+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-    Foundation, Inc.
- 
-    Contributed by Hewlett-Packard Company.
-@@ -511,7 +511,8 @@ extract_display_start_addr (void)
+--- gdb-6.7.orig/gdb/tui/tui-layout.c	2007-08-23 20:08:50.000000000 +0200
++++ gdb-6.7/gdb/tui/tui-layout.c	2007-10-14 23:26:23.000000000 +0200
+@@ -516,7 +516,8 @@ extract_display_start_addr (void)
  {
    enum tui_layout_type cur_layout = tui_current_layout ();
    CORE_ADDR addr;
@@ -96,7 +85,7 @@
    struct symtab_and_line cursal = get_current_source_symtab_and_line ();
  
    switch (cur_layout)
-@@ -520,8 +521,11 @@ extract_display_start_addr (void)
+@@ -525,8 +526,11 @@ extract_display_start_addr (void)
      case SRC_DATA_COMMAND:
        find_line_pc (cursal.symtab,
  		    TUI_SRC_WIN->detail.source_info.start_line_or_addr.u.line_no,
@@ -110,19 +99,11 @@
        break;
      case DISASSEM_COMMAND:
      case SRC_DISASSEM_COMMAND:
-Index: gdb-6.5/gdb/tui/tui-win.c
+Index: gdb-6.7/gdb/tui/tui-win.c
 ===================================================================
---- gdb-6.5.orig/gdb/tui/tui-win.c	2006-07-11 01:30:43.000000000 -0300
-+++ gdb-6.5/gdb/tui/tui-win.c	2006-07-11 02:16:12.000000000 -0300
-@@ -1,6 +1,6 @@
- /* TUI window generic functions.
- 
--   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
-+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-    Free Software Foundation, Inc.
- 
-    Contributed by Hewlett-Packard Company.
-@@ -1342,8 +1342,16 @@ make_visible_with_new_height (struct tui
+--- gdb-6.7.orig/gdb/tui/tui-win.c	2007-08-23 20:08:50.000000000 +0200
++++ gdb-6.7/gdb/tui/tui-win.c	2007-10-14 23:26:23.000000000 +0200
+@@ -1359,8 +1359,16 @@ make_visible_with_new_height (struct tui
  	    }
  	  else
  	    {
@@ -140,18 +121,10 @@
  	    }
  	  tui_update_source_window (win_info, s, line, TRUE);
  	}
-Index: gdb-6.5/gdb/tui/tui-winsource.c
+Index: gdb-6.7/gdb/tui/tui-winsource.c
 ===================================================================
---- gdb-6.5.orig/gdb/tui/tui-winsource.c	2006-07-11 01:30:43.000000000 -0300
-+++ gdb-6.5/gdb/tui/tui-winsource.c	2006-07-11 01:39:20.000000000 -0300
-@@ -1,6 +1,6 @@
- /* TUI display source/assembly window.
- 
--   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
-+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-    Free Software Foundation, Inc.
- 
-    Contributed by Hewlett-Packard Company.
+--- gdb-6.7.orig/gdb/tui/tui-winsource.c	2007-08-23 20:08:50.000000000 +0200
++++ gdb-6.7/gdb/tui/tui-winsource.c	2007-10-14 23:26:23.000000000 +0200
 @@ -173,14 +173,21 @@ tui_update_source_windows_with_addr (COR
  void
  tui_update_source_windows_with_line (struct symtab *s, int line)
@@ -190,19 +163,10 @@
  	  tui_show_disassem (pc);
  	}
        break;
-Index: gdb-6.5/gdb/symtab.c
+Index: gdb-6.7/gdb/symtab.c
 ===================================================================
---- gdb-6.5.orig/gdb/symtab.c	2006-07-11 01:30:43.000000000 -0300
-+++ gdb-6.5/gdb/symtab.c	2006-07-11 02:16:05.000000000 -0300
-@@ -1,7 +1,7 @@
- /* Symbol table lookup for the GNU debugger, GDB.
- 
-    Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
--   1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-+   1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-    Free Software Foundation, Inc.
- 
-    This file is part of GDB.
+--- gdb-6.7.orig/gdb/symtab.c	2007-10-12 22:35:58.000000000 +0200
++++ gdb-6.7/gdb/symtab.c	2007-10-14 23:26:23.000000000 +0200
 @@ -73,7 +73,9 @@ static void sources_info (char *, int);
  
  static void output_source_filename (const char *, int *);
@@ -214,7 +178,7 @@
  
  /* This one is used by linespec.c */
  
-@@ -2233,6 +2235,9 @@ find_pc_line (CORE_ADDR pc, int notcurre
+@@ -2252,6 +2254,9 @@ find_pc_line (CORE_ADDR pc, int notcurre
  /* Find line number LINE in any symtab whose name is the same as
     SYMTAB.
  
@@ -224,7 +188,7 @@
     If found, return the symtab that contains the linetable in which it was
     found, set *INDEX to the index in the linetable of the best entry
     found, and set *EXACT_MATCH nonzero if the value returned is an
-@@ -2249,13 +2254,19 @@ find_line_symtab (struct symtab *symtab,
+@@ -2268,13 +2273,19 @@ find_line_symtab (struct symtab *symtab,
       so far seen.  */
  
    int best_index;
@@ -245,7 +209,7 @@
    if (best_index < 0 || !exact)
      {
        /* Didn't find an exact match.  So we better keep looking for
-@@ -2286,7 +2297,7 @@ find_line_symtab (struct symtab *symtab,
+@@ -2305,7 +2316,7 @@ find_line_symtab (struct symtab *symtab,
  	if (strcmp (symtab->filename, s->filename) != 0)
  	  continue;
  	l = LINETABLE (s);
@@ -254,7 +218,7 @@
  	if (ind >= 0)
  	  {
  	    if (exact)
-@@ -2322,13 +2333,23 @@ done:
+@@ -2341,13 +2352,23 @@ done:
     Returns zero for invalid line number (and sets the PC to 0).
     The source file is specified with a struct symtab.  */
  
@@ -281,7 +245,7 @@
    if (symtab == 0)
      return 0;
  
-@@ -2336,7 +2357,73 @@ find_line_pc (struct symtab *symtab, int
+@@ -2355,7 +2376,73 @@ find_line_pc (struct symtab *symtab, int
    if (symtab != NULL)
      {
        l = LINETABLE (symtab);
@@ -356,7 +320,7 @@
        return 1;
      }
    else
-@@ -2354,12 +2418,22 @@ find_line_pc_range (struct symtab_and_li
+@@ -2373,12 +2460,22 @@ find_line_pc_range (struct symtab_and_li
  		    CORE_ADDR *endptr)
  {
    CORE_ADDR startaddr;
@@ -380,7 +344,7 @@
    /* This whole function is based on address.  For example, if line 10 has
       two parts, one from 0x100 to 0x200 and one from 0x300 to 0x400, then
       "info line *0x123" should say the line goes from 0x100 to 0x200
-@@ -2389,7 +2463,7 @@ find_line_pc_range (struct symtab_and_li
+@@ -2408,7 +2505,7 @@ find_line_pc_range (struct symtab_and_li
     Set *EXACT_MATCH nonzero if the value returned is an exact match.  */
  
  static int
@@ -389,7 +353,7 @@
  		  int *exact_match)
  {
    int i;
-@@ -2408,7 +2482,7 @@ find_line_common (struct linetable *l, i
+@@ -2427,7 +2524,7 @@ find_line_common (struct linetable *l, i
      return -1;
  
    len = l->nitems;
@@ -398,7 +362,7 @@
      {
        struct linetable_entry *item = &(l->item[i]);
  
-@@ -2432,6 +2506,52 @@ find_line_common (struct linetable *l, i
+@@ -2451,6 +2548,52 @@ find_line_common (struct linetable *l, i
    return best_index;
  }
  
@@ -451,20 +415,11 @@
  int
  find_pc_line_pc_range (CORE_ADDR pc, CORE_ADDR *startptr, CORE_ADDR *endptr)
  {
-Index: gdb-6.5/gdb/symtab.h
+Index: gdb-6.7/gdb/symtab.h
 ===================================================================
---- gdb-6.5.orig/gdb/symtab.h	2006-07-11 01:30:43.000000000 -0300
-+++ gdb-6.5/gdb/symtab.h	2006-07-11 01:39:20.000000000 -0300
-@@ -1,7 +1,7 @@
- /* Symbol table definitions for GDB.
- 
-    Copyright (C) 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
--   1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
-+   1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-    Foundation, Inc.
- 
-    This file is part of GDB.
-@@ -1256,13 +1256,16 @@ extern struct symtab_and_line find_pc_se
+--- gdb-6.7.orig/gdb/symtab.h	2007-08-23 20:08:45.000000000 +0200
++++ gdb-6.7/gdb/symtab.h	2007-10-14 23:26:23.000000000 +0200
+@@ -1271,13 +1271,16 @@ extern struct symtab_and_line find_pc_se
  
  /* Given a symtab and line number, return the pc there.  */
  
@@ -482,11 +437,11 @@
  /* Given a string, return the line specified by it.  For commands like "list"
     and "breakpoint".  */
  
-Index: gdb-6.5/gdb/breakpoint.c
+Index: gdb-6.7/gdb/breakpoint.c
 ===================================================================
---- gdb-6.5.orig/gdb/breakpoint.c	2006-07-11 01:30:53.000000000 -0300
-+++ gdb-6.5/gdb/breakpoint.c	2006-07-11 01:39:20.000000000 -0300
-@@ -5268,12 +5268,70 @@ static void
+--- gdb-6.7.orig/gdb/breakpoint.c	2007-10-13 05:29:58.000000000 +0200
++++ gdb-6.7/gdb/breakpoint.c	2007-10-14 23:26:23.000000000 +0200
+@@ -5325,12 +5325,70 @@ parse_breakpoint_sals (char **address,
  
  static void
  breakpoint_sals_to_pc (struct symtabs_and_lines *sals,
@@ -562,7 +517,7 @@
  
        /* It's possible for the PC to be nonzero, but still an illegal
           value on some targets.
-@@ -5406,6 +5436,10 @@ break_command_1 (char *arg, int flag, in
+@@ -5465,6 +5523,10 @@ break_command_1 (char *arg, int flag, in
  
    if (!pending)
      {
@@ -573,7 +528,7 @@
        /* Make sure that all storage allocated to SALS gets freed.  */
        make_cleanup (xfree, sals.sals);
        
-@@ -5436,11 +5470,6 @@ break_command_1 (char *arg, int flag, in
+@@ -5495,11 +5557,6 @@ break_command_1 (char *arg, int flag, in
  	make_cleanup (xfree, addr_string[i]);
      }
  
@@ -585,7 +540,7 @@
    /* Verify that condition can be parsed, before setting any
       breakpoints.  Allocate a separate condition expression for each
       breakpoint. */
-@@ -5665,7 +5688,7 @@ do_captured_breakpoint (struct ui_out *u
+@@ -5675,7 +5732,7 @@ do_captured_breakpoint (struct ui_out *u
      error (_("Garbage %s following breakpoint address"), address_end);
  
    /* Resolve all line numbers to PC's.  */
@@ -594,7 +549,7 @@
  
    /* Verify that conditions can be parsed, before setting any
       breakpoints.  */
-@@ -5670,14 +5699,16 @@ gdb_breakpoint (char *address, char *con
+@@ -5732,14 +5789,16 @@ gdb_breakpoint (char *address, char *con
  void
  resolve_sal_pc (struct symtab_and_line *sal)
  {
@@ -614,7 +569,7 @@
      }
  
    if (sal->section == 0 && sal->symtab != NULL)
-@@ -5714,6 +5745,54 @@ resolve_sal_pc (struct symtab_and_line *
+@@ -5776,6 +5835,54 @@ resolve_sal_pc (struct symtab_and_line *
      }
  }
  
@@ -669,7 +624,7 @@
  void
  break_command (char *arg, int from_tty)
  {
-@@ -7304,6 +7305,8 @@ breakpoint_re_set_one (void *bint)
+@@ -7320,6 +7427,8 @@ breakpoint_re_set_one (void *bint)
    int *not_found_ptr = NULL;
    struct symtabs_and_lines sals;
    char *s;
@@ -678,7 +633,7 @@
    enum enable_state save_enable;
  
    switch (b->type)
-@@ -7364,11 +7367,44 @@ breakpoint_re_set_one (void *bint)
+@@ -7380,11 +7489,44 @@ breakpoint_re_set_one (void *bint)
        set_language (b->language);
        input_radix = b->input_radix;
        s = b->addr_string;

gdb-6.3-dtorfix-20050121.patch:

Index: gdb-6.3-dtorfix-20050121.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-dtorfix-20050121.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-dtorfix-20050121.patch	11 Jul 2006 06:33:02 -0000	1.3
+++ gdb-6.3-dtorfix-20050121.patch	1 Nov 2007 20:24:20 -0000	1.4
@@ -4,11 +4,15 @@
 	destructors as this will be handled in find_methods.
 	(find_methods): Fix ctor check to also check for dtor.
 
-Index: gdb-6.5/gdb/linespec.c
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/linespec.c
 ===================================================================
---- gdb-6.5.orig/gdb/linespec.c	2006-07-07 01:04:56.000000000 -0300
-+++ gdb-6.5/gdb/linespec.c	2006-07-07 02:05:35.000000000 -0300
-@@ -377,12 +377,14 @@ add_matching_methods (int method_counter
+--- gdb-6.7.orig/gdb/linespec.c	2007-10-13 05:26:33.000000000 +0200
++++ gdb-6.7/gdb/linespec.c	2007-10-14 23:31:03.000000000 +0200
+@@ -398,12 +398,14 @@ add_matching_methods (int method_counter
  
        /* Check for special case of looking for member that
  	 doesn't have a mangled name provided.  This will happen
@@ -24,9 +28,9 @@
 +         || (strlen (phys_name) == strlen (class_name) + 1
 +             && phys_name[0] == '~'))
  	return add_minsym_members (class_name, phys_name, msym_arr);
- 		
+ 
        /* Destructor is handled by caller, don't add it to
-@@ -1709,6 +1711,11 @@ collect_methods (char *copy, struct type
+@@ -1731,6 +1733,11 @@ collect_methods (char *copy, struct type
  {
    int i1 = 0;	/*  Counter for the symbol array.  */
  
@@ -38,11 +42,11 @@
    if (destructor_name_p (copy, t))
      {
        /* Destructors are a special case.  */
-@@ -1727,6 +1734,7 @@ collect_methods (char *copy, struct type
+@@ -1749,6 +1756,7 @@ collect_methods (char *copy, struct type
  	}
      }
    else
 +#endif
-     i1 = find_methods (t, copy, sym_arr, msym_arr);
+     i1 = find_methods (t, copy, SYMBOL_LANGUAGE (sym_class), sym_arr, msym_arr);
  
    return i1;

gdb-6.3-ia64-gcore-page0-20050421.patch:

Index: gdb-6.3-ia64-gcore-page0-20050421.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ia64-gcore-page0-20050421.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-ia64-gcore-page0-20050421.patch	21 Jan 2007 01:53:01 -0000	1.3
+++ gdb-6.3-ia64-gcore-page0-20050421.patch	1 Nov 2007 20:24:20 -0000	1.4
@@ -2,7 +2,7 @@
 ===================================================================
 --- gdb-6.6.orig/gdb/gcore.c
 +++ gdb-6.6/gdb/gcore.c
-@@ -475,8 +475,13 @@ gcore_copy_callback (bfd *obfd, asection
+@@ -475,8 +475,14 @@ gcore_copy_callback (bfd *obfd, asection
        if (size > total_size)
  	size = total_size;
  
@@ -12,7 +12,8 @@
        if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
 -			      memhunk, size) != 0)
 +			      memhunk, size) != 0
-+	  && (strcmp (TARGET_ARCHITECTURE->arch_name, "ia64")
++	  && (strcmp (gdbarch_bfd_arch_info (current_gdbarch)->arch_name,
++		      "ia64")
 +	      || bfd_section_vma (obfd, osec) != 0))
  	{
  	  warning (_("Memory read failed for corefile section, %s bytes at 0x%s."),

gdb-6.3-ia64-sigaltstack-20050711.patch:

Index: gdb-6.3-ia64-sigaltstack-20050711.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ia64-sigaltstack-20050711.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-ia64-sigaltstack-20050711.patch	14 Jul 2005 19:11:17 -0000	1.1
+++ gdb-6.3-ia64-sigaltstack-20050711.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -17,9 +17,15 @@
 	(libunwind_frame_prev_register): Support request for
 	getting the cursor address.
 
---- gdb-6.3/gdb/ia64-tdep.c.fix	2005-07-11 18:13:42.000000000 -0400
-+++ gdb-6.3/gdb/ia64-tdep.c	2005-07-11 18:15:52.000000000 -0400
-@@ -141,7 +141,7 @@ static int lr_regnum = IA64_VRAP_REGNUM;
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/ia64-tdep.c
+===================================================================
+--- gdb-6.7.orig/gdb/ia64-tdep.c	2007-10-14 23:57:38.000000000 +0200
++++ gdb-6.7/gdb/ia64-tdep.c	2007-10-15 00:05:20.000000000 +0200
+@@ -131,7 +131,7 @@ static int lr_regnum = IA64_VRAP_REGNUM;
     they may not be accessible via the ptrace register get/set interfaces.  */
  enum pseudo_regs { FIRST_PSEUDO_REGNUM = NUM_IA64_RAW_REGS, VBOF_REGNUM = IA64_NAT127_REGNUM + 1, V32_REGNUM, 
  		   V127_REGNUM = V32_REGNUM + 95, 
@@ -28,7 +34,7 @@
  
  /* Array of register names; There should be ia64_num_regs strings in
     the initializer.  */
-@@ -253,6 +253,7 @@ static char *ia64_register_names[] = 
+@@ -243,6 +243,7 @@ static char *ia64_register_names[] = 
    "p40",  "p41",  "p42",  "p43",  "p44",  "p45",  "p46",  "p47",
    "p48",  "p49",  "p50",  "p51",  "p52",  "p53",  "p54",  "p55",
    "p56",  "p57",  "p58",  "p59",  "p60",  "p61",  "p62",  "p63",
@@ -36,7 +42,7 @@
  };
  
  struct ia64_frame_cache
-@@ -1855,6 +1856,12 @@ ia64_frame_prev_register (struct frame_i
+@@ -1856,6 +1857,12 @@ ia64_frame_prev_register (struct frame_i
  	  read_memory (addr, valuep, register_size (current_gdbarch, regnum));
          }
      }
@@ -49,7 +55,7 @@
    else
      {
        CORE_ADDR addr = 0;
-@@ -2177,6 +2184,12 @@ ia64_sigtramp_frame_prev_register (struc
+@@ -2178,6 +2185,12 @@ ia64_sigtramp_frame_prev_register (struc
  	  *addrp = pr_addr;
  	}
      }
@@ -62,7 +68,7 @@
    else
      {
        /* All other registers not listed above.  */
-@@ -2296,6 +2309,8 @@ ia64_gdb2uw_regnum (int regnum)
+@@ -2299,6 +2312,8 @@ ia64_gdb2uw_regnum (int regnum)
      return UNW_IA64_AR + (regnum - IA64_AR0_REGNUM);
    else if ((unsigned) (regnum - IA64_NAT0_REGNUM) < 128)
      return UNW_IA64_NAT + (regnum - IA64_NAT0_REGNUM);
@@ -71,7 +77,7 @@
    else
      return -1;
  }
-@@ -2331,6 +2346,21 @@ ia64_uw2gdb_regnum (int uw_regnum)
+@@ -2334,6 +2349,21 @@ ia64_uw2gdb_regnum (int uw_regnum)
      return -1;
  }
  
@@ -93,7 +99,7 @@
  /* Gdb libunwind-frame callback function to reveal if register is a float 
     register or not.  */
  static int
-@@ -3111,6 +3141,7 @@ static struct libunwind_descr ia64_libun
+@@ -3046,6 +3076,7 @@ static struct libunwind_descr ia64_libun
    ia64_gdb2uw_regnum, 
    ia64_uw2gdb_regnum, 
    ia64_is_fpreg, 
@@ -101,9 +107,11 @@
    &ia64_unw_accessors,
    &ia64_unw_rse_accessors,
  };
---- gdb-6.3/gdb/libunwind-frame.c.fix	2005-07-11 18:17:05.000000000 -0400
-+++ gdb-6.3/gdb/libunwind-frame.c	2005-07-11 18:20:31.000000000 -0400
-@@ -122,6 +122,7 @@ libunwind_frame_set_descr (struct gdbarc
+Index: gdb-6.7/gdb/libunwind-frame.c
+===================================================================
+--- gdb-6.7.orig/gdb/libunwind-frame.c	2007-08-23 20:08:35.000000000 +0200
++++ gdb-6.7/gdb/libunwind-frame.c	2007-10-15 00:07:56.000000000 +0200
+@@ -125,6 +125,7 @@ libunwind_frame_set_descr (struct gdbarc
    arch_descr->is_fpreg = descr->is_fpreg;
    arch_descr->accessors = descr->accessors;
    arch_descr->special_accessors = descr->special_accessors;
@@ -111,7 +119,7 @@
  }
  
  static struct libunwind_frame_cache *
-@@ -129,6 +130,7 @@ libunwind_frame_cache (struct frame_info
+@@ -132,6 +133,7 @@ libunwind_frame_cache (struct frame_info
  {
    unw_accessors_t *acc;
    unw_addr_space_t as;
@@ -119,7 +127,7 @@
    unw_word_t fp;
    unw_regnum_t uw_sp_regnum;
    struct libunwind_frame_cache *cache;
-@@ -147,22 +149,33 @@ libunwind_frame_cache (struct frame_info
+@@ -153,23 +155,34 @@ libunwind_frame_cache (struct frame_info
        && get_frame_type (next_frame) != SIGTRAMP_FRAME)
      return NULL;
  
@@ -151,7 +159,8 @@
 +    {
 +      acc = descr->accessors;
 +      as =  unw_create_addr_space_p (acc,
- 				 TARGET_BYTE_ORDER == BFD_ENDIAN_BIG
+ 				 gdbarch_byte_order (current_gdbarch)
+ 				 == BFD_ENDIAN_BIG
  				 ? __BIG_ENDIAN
  				 : __LITTLE_ENDIAN);
  
@@ -162,9 +171,9 @@
 +    cache->cursor = *cursor_addr;
 +
    if (unw_step_p (&cache->cursor) < 0)
-     return NULL;
- 
-@@ -285,6 +298,16 @@ libunwind_frame_prev_register (struct fr
+     {
+       unw_destroy_addr_space_p (as);
+@@ -316,6 +329,16 @@ libunwind_frame_prev_register (struct fr
    if (uw_regnum < 0)
      return;
  
@@ -181,9 +190,11 @@
    /* To get the previous register, we use the libunwind register APIs with
       the cursor we have already pushed back to the previous frame.  */
  
---- gdb-6.3/gdb/libunwind-frame.h.fix	2005-07-11 18:17:24.000000000 -0400
-+++ gdb-6.3/gdb/libunwind-frame.h	2005-07-11 18:18:46.000000000 -0400
-@@ -37,6 +37,7 @@ struct libunwind_descr
+Index: gdb-6.7/gdb/libunwind-frame.h
+===================================================================
+--- gdb-6.7.orig/gdb/libunwind-frame.h	2007-08-23 20:08:35.000000000 +0200
++++ gdb-6.7/gdb/libunwind-frame.h	2007-10-15 00:05:20.000000000 +0200
+@@ -36,6 +36,7 @@ struct libunwind_descr
    int (*gdb2uw) (int);
    int (*uw2gdb) (int);
    int (*is_fpreg) (int);

gdb-6.3-ia64-sigtramp-fp-20050926.patch:

Index: gdb-6.3-ia64-sigtramp-fp-20050926.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ia64-sigtramp-fp-20050926.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-ia64-sigtramp-fp-20050926.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-ia64-sigtramp-fp-20050926.patch	1 Nov 2007 20:24:20 -0000	1.3
@@ -11,20 +11,24 @@
 	* ia64-tdep.c (ia64_libunwind_sigtramp_frame_this_id): Calculate
 	the base address using the current stack pointer plus a fixed
 	offset.
-	
-Index: gdb-6.5/gdb/libunwind-frame.c
+
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/libunwind-frame.c
 ===================================================================
---- gdb-6.5.orig/gdb/libunwind-frame.c	2006-07-07 03:04:32.000000000 -0300
-+++ gdb-6.5/gdb/libunwind-frame.c	2006-07-07 03:07:33.000000000 -0300
-@@ -62,6 +62,7 @@ static unw_word_t (*unw_find_dyn_list_p)
+--- gdb-6.7.orig/gdb/libunwind-frame.c	2007-10-15 00:08:30.000000000 +0200
++++ gdb-6.7/gdb/libunwind-frame.c	2007-10-15 00:13:29.000000000 +0200
+@@ -61,6 +61,7 @@ static unw_word_t (*unw_find_dyn_list_p)
  struct libunwind_frame_cache
  {
    CORE_ADDR base;
 +  CORE_ADDR sp;
    CORE_ADDR func_addr;
    unw_cursor_t cursor;
- };
-@@ -131,7 +132,7 @@ libunwind_frame_cache (struct frame_info
+   unw_addr_space_t as;
+@@ -134,7 +135,7 @@ libunwind_frame_cache (struct frame_info
    unw_accessors_t *acc;
    unw_addr_space_t as;
    unw_cursor_t *cursor_addr;
@@ -33,7 +37,7 @@
    unw_regnum_t uw_sp_regnum;
    struct libunwind_frame_cache *cache;
    struct libunwind_descr *descr;
-@@ -176,15 +177,28 @@ libunwind_frame_cache (struct frame_info
+@@ -183,14 +184,29 @@ libunwind_frame_cache (struct frame_info
    else /* make copy */
      cache->cursor = *cursor_addr;
  
@@ -46,25 +50,34 @@
 +     sigaltstack as we want.  To handle this, we record the stack
 +     address so the caller may calculate a more correct base address
 +     to use.  */
-+  uw_sp_regnum = descr->gdb2uw (SP_REGNUM);
++  uw_sp_regnum = descr->gdb2uw (gdbarch_sp_regnum (current_gdbarch));
 +  ret = unw_get_reg_p (&cache->cursor, uw_sp_regnum, &sp);
 +  if (ret < 0)
-+    error ("Can't get libunwind sp register.");
++    {
++      unw_destroy_addr_space_p (as);
++      error (_("Can't get libunwind sp register."));
++    }
 +
    if (unw_step_p (&cache->cursor) < 0)
-     return NULL;
+     {
+       unw_destroy_addr_space_p (as);
+       return NULL;
+     }
  
 -  /* To get base address, get sp from previous frame.  */
--  uw_sp_regnum = descr->gdb2uw (SP_REGNUM);
+-  uw_sp_regnum = descr->gdb2uw (gdbarch_sp_regnum (current_gdbarch));
    ret = unw_get_reg_p (&cache->cursor, uw_sp_regnum, &fp);
    if (ret < 0)
-     error (_("Can't get libunwind sp register."));
+     {
+@@ -198,6 +214,7 @@ libunwind_frame_cache (struct frame_info
+       error (_("Can't get libunwind sp register."));
+     }
  
 +  cache->sp = (CORE_ADDR)sp;
    cache->base = (CORE_ADDR)fp;
+   cache->as = as;
  
-   *this_cache = cache;
-@@ -371,6 +385,31 @@ libunwind_search_unwind_table (void *as,
+@@ -402,6 +419,31 @@ libunwind_search_unwind_table (void *as,
  				    di, pi, need_unwind_info, args);
  }
  
@@ -96,20 +109,20 @@
  /* Verify if we are in a sigtramp frame and we can use libunwind to unwind.  */
  const struct frame_unwind *
  libunwind_sigtramp_frame_sniffer (struct frame_info *next_frame)
-@@ -403,7 +442,7 @@ libunwind_sigtramp_frame_sniffer (struct
-   /* Check to see if we are in a signal frame.  */
+@@ -439,7 +481,7 @@ libunwind_sigtramp_frame_sniffer (struct
    ret = unw_is_signal_frame_p (&cursor);
+   unw_destroy_addr_space_p (as);
    if (ret > 0)
 -    return &libunwind_frame_unwind;
 +    return &libunwind_sigtramp_frame_unwind;
  
    return NULL;
  }
-Index: gdb-6.5/gdb/libunwind-frame.h
+Index: gdb-6.7/gdb/libunwind-frame.h
 ===================================================================
---- gdb-6.5.orig/gdb/libunwind-frame.h	2006-07-07 02:51:32.000000000 -0300
-+++ gdb-6.5/gdb/libunwind-frame.h	2006-07-07 03:05:49.000000000 -0300
-@@ -49,6 +49,9 @@ void libunwind_frame_set_descr (struct g
+--- gdb-6.7.orig/gdb/libunwind-frame.h	2007-10-15 00:05:20.000000000 +0200
++++ gdb-6.7/gdb/libunwind-frame.h	2007-10-15 00:08:36.000000000 +0200
+@@ -48,6 +48,9 @@ void libunwind_frame_set_descr (struct g
  
  void libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache,
  			      struct frame_id *this_id);
@@ -119,11 +132,11 @@
  void libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
  				    int regnum, int *optimizedp,
  				    enum lval_type *lvalp, CORE_ADDR *addrp,
-Index: gdb-6.5/gdb/ia64-tdep.c
+Index: gdb-6.7/gdb/ia64-tdep.c
 ===================================================================
---- gdb-6.5.orig/gdb/ia64-tdep.c	2006-07-07 02:51:32.000000000 -0300
-+++ gdb-6.5/gdb/ia64-tdep.c	2006-07-07 03:05:49.000000000 -0300
-@@ -3031,7 +3031,7 @@ ia64_libunwind_sigtramp_frame_this_id (s
+--- gdb-6.7.orig/gdb/ia64-tdep.c	2007-10-15 00:05:20.000000000 +0200
++++ gdb-6.7/gdb/ia64-tdep.c	2007-10-15 00:08:36.000000000 +0200
+@@ -2968,7 +2968,7 @@ ia64_libunwind_sigtramp_frame_this_id (s
    struct frame_id id;
    CORE_ADDR prev_ip;
  
@@ -132,7 +145,7 @@
    if (frame_id_eq (id, null_frame_id))
      {
        (*this_id) = null_frame_id;
-@@ -3043,8 +3043,14 @@ ia64_libunwind_sigtramp_frame_this_id (s
+@@ -2980,8 +2980,14 @@ ia64_libunwind_sigtramp_frame_this_id (s
    frame_unwind_register (next_frame, IA64_BSP_REGNUM, buf);
    bsp = extract_unsigned_integer (buf, 8);
  

gdb-6.3-large-core-20051206.patch:

Index: gdb-6.3-large-core-20051206.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-large-core-20051206.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-large-core-20051206.patch	21 Jan 2007 01:53:01 -0000	1.3
+++ gdb-6.3-large-core-20051206.patch	1 Nov 2007 20:24:20 -0000	1.4
@@ -21,11 +21,15 @@
 	* remote.h: Ditto.
 	* dcache.h: Ditto.
 
-Index: gdb-6.6/gdb/symfile-mem.c
+2007-10-15  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/symfile-mem.c
 ===================================================================
---- 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 @@
+--- gdb-6.7.orig/gdb/symfile-mem.c	2007-10-13 05:29:58.000000000 +0200
++++ gdb-6.7/gdb/symfile-mem.c	2007-10-15 21:37:54.000000000 +0200
+@@ -56,6 +56,14 @@
  #include "elf/common.h"
  
  
@@ -40,7 +44,7 @@
  /* Read inferior memory at ADDR to find the header of a loaded object file
     and read its in-core symbols out of inferior memory.  TEMPL is a bfd
     representing the target's format.  NAME is the name to use for this
-@@ -78,7 +86,7 @@ symbol_file_add_from_memory (struct bfd 
+@@ -76,7 +84,7 @@ symbol_file_add_from_memory (struct bfd 
      error (_("add-symbol-file-from-memory not supported for this target"));
  
    nbfd = bfd_elf_bfd_from_remote_memory (templ, addr, &loadbase,
@@ -49,11 +53,11 @@
    if (nbfd == NULL)
      error (_("Failed to read a valid object file image from memory."));
  
-Index: gdb-6.6/gdb/target.c
+Index: gdb-6.7/gdb/target.c
 ===================================================================
---- 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 *
+--- gdb-6.7.orig/gdb/target.c	2007-10-14 23:42:39.000000000 +0200
++++ gdb-6.7/gdb/target.c	2007-10-15 21:37:54.000000000 +0200
+@@ -55,7 +55,7 @@ static int nosymbol (char *, CORE_ADDR *
  
  static void tcomplain (void) ATTR_NORETURN;
  
@@ -62,7 +66,7 @@
  
  static int return_zero (void);
  
-@@ -284,7 +284,7 @@ target_mourn_inferior (void)
+@@ -283,7 +283,7 @@ target_mourn_inferior (void)
    observer_notify_mourn_inferior (&current_target);
  }
  
@@ -71,8 +75,8 @@
  nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
  	  struct target_ops *t)
  {
-@@ -517,7 +517,7 @@ update_current_target (void)
- 	    (void (*) (void))
+@@ -518,7 +518,7 @@ update_current_target (void)
+ 	    (void (*) (struct regcache *))
  	    noprocess);
    de_fault (deprecated_xfer_memory,
 -	    (int (*) (CORE_ADDR, gdb_byte *, int, int, struct mem_attrib *, struct target_ops *))
@@ -80,7 +84,7 @@
  	    nomemory);
    de_fault (to_files_info,
  	    (void (*) (struct target_ops *))
-@@ -1178,7 +1178,7 @@ target_xfer_partial (struct target_ops *
+@@ -1195,7 +1195,7 @@ target_xfer_partial (struct target_ops *
     it makes no progress, and then return how much was transferred). */
  
  int
@@ -89,7 +93,7 @@
  {
    if (target_read (&current_target, TARGET_OBJECT_MEMORY, NULL,
  		   myaddr, memaddr, len) == len)
-@@ -1188,7 +1188,7 @@ target_read_memory (CORE_ADDR memaddr, g
+@@ -1205,7 +1205,7 @@ target_read_memory (CORE_ADDR memaddr, g
  }
  
  int
@@ -98,7 +102,7 @@
  {
    if (target_write (&current_target, TARGET_OBJECT_MEMORY, NULL,
  		    myaddr, memaddr, len) == len)
-@@ -2186,8 +2186,8 @@ debug_to_prepare_to_store (void)
+@@ -2228,8 +2228,8 @@ debug_to_prepare_to_store (struct regcac
    fprintf_unfiltered (gdb_stdlog, "target_prepare_to_store ()\n");
  }
  
@@ -109,7 +113,7 @@
  			      int write, struct mem_attrib *attrib,
  			      struct target_ops *target)
  {
-@@ -2197,9 +2197,9 @@ deprecated_debug_xfer_memory (CORE_ADDR 
+@@ -2239,9 +2239,9 @@ deprecated_debug_xfer_memory (CORE_ADDR 
  						attrib, target);
  
    fprintf_unfiltered (gdb_stdlog,
@@ -121,11 +125,11 @@
  
    if (retval > 0)
      {
-Index: gdb-6.6/gdb/target.h
+Index: gdb-6.7/gdb/target.h
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/target.h	2007-10-14 23:24:52.000000000 +0200
++++ gdb-6.7/gdb/target.h	2007-10-15 21:39:20.000000000 +0200
+@@ -351,10 +351,10 @@ struct target_ops
         NOTE: cagney/2004-10-01: This has been entirely superseeded by
         to_xfer_partial and inferior inheritance.  */
  
@@ -140,7 +144,7 @@
  
      void (*to_files_info) (struct target_ops *);
      int (*to_insert_breakpoint) (struct bp_target_info *);
-@@ -605,16 +605,17 @@ extern DCACHE *target_dcache;
+@@ -615,13 +615,14 @@ extern DCACHE *target_dcache;
  
  extern int target_read_string (CORE_ADDR, char **, int, int *);
  
@@ -157,46 +161,13 @@
 +extern LONGEST xfer_memory (CORE_ADDR, gdb_byte *, LONGEST, int,
 +			    struct mem_attrib *, struct target_ops *);
  
--extern int child_xfer_memory (CORE_ADDR, gdb_byte *, int, int,
--			      struct mem_attrib *, struct target_ops *);
-+extern LONGEST child_xfer_memory (CORE_ADDR, gdb_byte *, LONGEST, int,
-+				  struct mem_attrib *, struct target_ops *);
- 
  /* Fetches the target's memory map.  If one is found it is sorted
     and returned, after some consistency checking.  Otherwise, NULL
-Index: gdb-6.6/gdb/infptrace.c
-===================================================================
---- 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.  */
- 
--int
--child_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write,
-+LONGEST
-+child_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len, int write,
- 		   struct mem_attrib *attrib, struct target_ops *target)
- {
--  int i;
-+  LONGEST i;
-   /* Round starting address down to longword boundary.  */
-   CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
-   /* Round ending address up; get number of longwords that makes.  */
--  int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
--	       / sizeof (PTRACE_TYPE_RET));
--  int alloc = count * sizeof (PTRACE_TYPE_RET);
-+  LONGEST count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
-+		   / sizeof (PTRACE_TYPE_RET));
-+  LONGEST alloc = count * sizeof (PTRACE_TYPE_RET);
-   PTRACE_TYPE_RET *buffer;
-   struct cleanup *old_chain = NULL;
- 
-Index: gdb-6.6/gdb/dcache.c
+Index: gdb-6.7/gdb/dcache.c
 ===================================================================
---- 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)
+--- gdb-6.7.orig/gdb/dcache.c	2007-08-23 20:08:28.000000000 +0200
++++ gdb-6.7/gdb/dcache.c	2007-10-15 21:37:54.000000000 +0200
+@@ -517,9 +517,9 @@ dcache_free (DCACHE *dcache)
  
     This routine is indended to be called by remote_xfer_ functions. */
  
@@ -208,11 +179,11 @@
  {
    int i;
    int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
-Index: gdb-6.6/gdb/dcache.h
+Index: gdb-6.7/gdb/dcache.h
 ===================================================================
---- 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 *);
+--- gdb-6.7.orig/gdb/dcache.h	2007-08-23 20:08:28.000000000 +0200
++++ gdb-6.7/gdb/dcache.h	2007-10-15 21:37:54.000000000 +0200
+@@ -35,7 +35,7 @@ void dcache_free (DCACHE *);
  
  /* Simple to call from <remote>_xfer_memory */
  
@@ -222,11 +193,11 @@
 +			    LONGEST len, int should_write);
  
  #endif /* DCACHE_H */
-Index: gdb-6.6/gdb/exec.c
+Index: gdb-6.7/gdb/exec.c
 ===================================================================
---- 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)
+--- gdb-6.7.orig/gdb/exec.c	2007-08-23 20:08:28.000000000 +0200
++++ gdb-6.7/gdb/exec.c	2007-10-15 21:37:54.000000000 +0200
+@@ -453,8 +453,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.  */
  
@@ -237,11 +208,11 @@
  	     struct mem_attrib *attrib, struct target_ops *target)
  {
    int res;
-Index: gdb-6.6/gdb/linux-nat.c
+Index: gdb-6.7/gdb/linux-nat.c
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/linux-nat.c	2007-10-15 00:13:52.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.c	2007-10-15 21:37:54.000000000 +0200
+@@ -3248,7 +3248,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.  */
@@ -250,11 +221,11 @@
  
  	  /* Re-read register stack area.  */
  	  xxfer = super_xfer_partial (ops, object, annex,
-Index: gdb-6.6/gdb/remote.c
+Index: gdb-6.7/gdb/remote.c
 ===================================================================
---- 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 @@
+--- gdb-6.7.orig/gdb/remote.c	2007-10-14 23:42:39.000000000 +0200
++++ gdb-6.7/gdb/remote.c	2007-10-15 21:37:54.000000000 +0200
+@@ -25,6 +25,7 @@
  #include "gdb_string.h"
  #include <ctype.h>
  #include <fcntl.h>
@@ -262,7 +233,7 @@
  #include "inferior.h"
  #include "bfd.h"
  #include "symfile.h"
-@@ -4185,19 +4186,27 @@ remote_read_bytes (CORE_ADDR memaddr, gd
+@@ -4484,19 +4485,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.  */
  
@@ -293,11 +264,11 @@
  }
  
  /* Sends a packet with content determined by the printf format string
-Index: gdb-6.6/gdb/remote-sim.c
+Index: gdb-6.7/gdb/remote-sim.c
 ===================================================================
---- 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)
+--- gdb-6.7.orig/gdb/remote-sim.c	2007-08-23 20:08:36.000000000 +0200
++++ gdb-6.7/gdb/remote-sim.c	2007-10-15 21:41:33.000000000 +0200
+@@ -747,11 +747,14 @@ gdbsim_prepare_to_store (struct regcache
  
     Returns the number of bytes transferred. */
  
@@ -314,13 +285,13 @@
    /* 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
+@@ -767,22 +770,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
        printf_filtered ("gdbsim_xfer_inferior_memory: myaddr 0x");
        gdb_print_host_address (myaddr, gdb_stdout);
        printf_filtered (", memaddr 0x%s, len %d, write %d\n",
 -		       paddr_nz (memaddr), len, write);
 +		       paddr_nz (memaddr), xfer_len, write);
-       if (sr_get_debug () && write)
+       if (remote_debug && write)
 -	dump_mem (myaddr, len);
 +	dump_mem (myaddr, xfer_len);
      }
@@ -333,10 +304,10 @@
    else
      {
 -      len = sim_read (gdbsim_desc, memaddr, myaddr, len);
--      if (sr_get_debug () && len > 0)
+-      if (remote_debug && len > 0)
 -	dump_mem (myaddr, len);
 +      xfer_len = sim_read (gdbsim_desc, memaddr, myaddr, xfer_len);
-+      if (sr_get_debug () && xfer_len > 0)
++      if (remote_debug && xfer_len > 0)
 +	dump_mem (myaddr, xfer_len);
      }
 -  return len;

gdb-6.3-linespec-20041213.patch:

Index: gdb-6.3-linespec-20041213.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-linespec-20041213.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- gdb-6.3-linespec-20041213.patch	8 Oct 2007 19:12:38 -0000	1.4
+++ gdb-6.3-linespec-20041213.patch	1 Nov 2007 20:24:20 -0000	1.5
@@ -15,44 +15,49 @@
 	(decode_variable_not_found): ... a new function here.
 	(decode_variable): New function.
 
-Index: gdb-6.5/gdb/linespec.c
+2007-10-31  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/linespec.c
 ===================================================================
---- gdb-6.5.orig/gdb/linespec.c	2006-01-10 20:14:43.000000000 -0200
-+++ gdb-6.5/gdb/linespec.c	2006-07-07 01:04:56.000000000 -0300
-@@ -37,6 +37,7 @@
- #include "objc-lang.h"
+--- gdb-6.7.orig/gdb/linespec.c	2007-08-23 20:08:35.000000000 +0200
++++ gdb-6.7/gdb/linespec.c	2007-10-13 05:26:33.000000000 +0200
+@@ -36,6 +36,7 @@
  #include "linespec.h"
  #include "exceptions.h"
+ #include "language.h"
 +#include "gdb_assert.h"
  
  /* We share this one with symtab.c, but it is not exported widely. */
  
-@@ -75,7 +75,8 @@ static struct symtabs_and_lines find_met
- 					     struct symbol *sym_class);
+@@ -75,7 +76,8 @@ static struct symtabs_and_lines find_met
  
  static int collect_methods (char *copy, struct type *t,
+ 			    struct symbol *sym_class,
 -			    struct symbol **sym_arr);
 +			    struct symbol **sym_arr,
 +			    struct minimal_symbol **msym_arr);
  
  static NORETURN void cplusplus_error (const char *name,
  				      const char *fmt, ...)
-@@ -83,10 +84,12 @@ static NORETURN void cplusplus_error (co
- 
+@@ -84,11 +86,13 @@ static NORETURN void cplusplus_error (co
  static int total_number_of_methods (struct type *type);
  
--static int find_methods (struct type *, char *, struct symbol **);
-+static int find_methods (struct type *, char *, struct symbol **,
+ static int find_methods (struct type *, char *,
+-			 enum language, struct symbol **);
++			 enum language, struct symbol **,
 +			 struct minimal_symbol **);
  
  static int add_matching_methods (int method_counter, struct type *t,
+ 				 enum language language,
 -				 struct symbol **sym_arr);
 +				 struct symbol **sym_arr,
 +				 struct minimal_symbol **msym_arr);
  
  static int add_constructors (int method_counter, struct type *t,
- 			     struct symbol **sym_arr);
-@@ -101,6 +104,9 @@ static int is_objc_method_format (const 
+ 			     enum language language,
+@@ -104,6 +108,9 @@ static int is_objc_method_format (const 
  static struct symtabs_and_lines decode_line_2 (struct symbol *[],
  					       int, int, char ***);
  
@@ -62,7 +67,7 @@
  static struct symtab *symtab_from_filename (char **argptr,
  					    char *p, int is_quote_enclosed,
  					    int *not_found_ptr);
-@@ -191,12 +197,18 @@ total_number_of_methods (struct type *ty
+@@ -194,13 +201,18 @@ total_number_of_methods (struct type *ty
  /* Recursive helper function for decode_line_1.
     Look for methods named NAME in type T.
     Return number of matches.
@@ -77,29 +82,27 @@
     Note that this function is g++ specific.  */
  
  static int
--find_methods (struct type *t, char *name, struct symbol **sym_arr)
-+find_methods (struct type *t, char *name, struct symbol **sym_arr,
-+	      struct minimal_symbol **msym_arr)
+ find_methods (struct type *t, char *name, enum language language,
+-	      struct symbol **sym_arr)
++	      struct symbol **sym_arr, struct minimal_symbol **msym_arr)
  {
    int i1 = 0;
    int ibase;
-@@ -239,7 +251,8 @@ find_methods (struct type *t, char *name
+@@ -243,7 +255,7 @@ find_methods (struct type *t, char *name
  	  if (strcmp_iw (name, method_name) == 0)
  	    /* Find all the overloaded methods with that name.  */
- 	    i1 += add_matching_methods (method_counter, t,
+ 	    i1 += add_matching_methods (method_counter, t, language,
 -					sym_arr + i1);
-+					sym_arr + i1,
-+					msym_arr);
++					sym_arr + i1, msym_arr);
  	  else if (strncmp (class_name, name, name_len) == 0
  		   && (class_name[name_len] == '\0'
  		       || class_name[name_len] == '<'))
-@@ -261,21 +274,101 @@ find_methods (struct type *t, char *name
- 
+@@ -266,21 +278,100 @@ find_methods (struct type *t, char *name
    if (i1 == 0)
      for (ibase = 0; ibase < TYPE_N_BASECLASSES (t); ibase++)
--      i1 += find_methods (TYPE_BASECLASS (t, ibase), name, sym_arr + i1);
-+      i1 += find_methods (TYPE_BASECLASS (t, ibase), name, sym_arr + i1,
-+			  msym_arr);
+       i1 += find_methods (TYPE_BASECLASS (t, ibase), name,
+-			  language, sym_arr + i1);
++			  language, sym_arr + i1, msym_arr);
  
    return i1;
  }
@@ -185,8 +188,8 @@
  
  static int
  add_matching_methods (int method_counter, struct type *t,
--		      struct symbol **sym_arr)
-+		      struct symbol **sym_arr,
+-		      enum language language, struct symbol **sym_arr)
++		      enum language language, struct symbol **sym_arr,
 +		      struct minimal_symbol **msym_arr)
  {
    int field_counter;
@@ -197,11 +200,10 @@
  
    for (field_counter = TYPE_FN_FIELDLIST_LENGTH (t, method_counter) - 1;
         field_counter >= 0;
-@@ -299,6 +374,16 @@ add_matching_methods (int method_counter
- 	}
+@@ -305,6 +396,16 @@ add_matching_methods (int method_counter
        else
  	phys_name = TYPE_FN_FIELD_PHYSNAME (f, field_counter);
-+
+ 
 +      /* Check for special case of looking for member that
 +	 doesn't have a mangled name provided.  This will happen
 +	 when we have in-charge and not-in-charge constructors.
@@ -211,10 +213,11 @@
 +	 table which has the full member name information we need.  */
 +      if (strlen (phys_name) <= strlen (class_name))
 +	return add_minsym_members (class_name, phys_name, msym_arr);
- 		
++
        /* Destructor is handled by caller, don't add it to
  	 the list.  */
-@@ -324,6 +409,9 @@ add_matching_methods (int method_counter
+       if (is_destructor_name (phys_name) != 0)
+@@ -330,6 +431,9 @@ add_matching_methods (int method_counter
  	}
      }
  
@@ -224,7 +227,7 @@
    return i1;
  }
  
-@@ -603,6 +691,146 @@ decode_line_2 (struct symbol *sym_arr[],
+@@ -610,6 +714,146 @@ decode_line_2 (struct symbol *sym_arr[],
    discard_cleanups (old_chain);
    return return_values;
  }
@@ -371,20 +374,20 @@
  
  /* The parser of linespec itself. */
  
-@@ -1406,36 +1634,46 @@ find_method (int funfirstline, char ***c
-   int i1;	/*  Counter for the symbol array.  */
+@@ -1414,35 +1658,46 @@ find_method (int funfirstline, char ***c
    struct symbol **sym_arr =  alloca (total_number_of_methods (t)
  				     * sizeof (struct symbol *));
+ 
 +  struct minimal_symbol **msym_arr =  alloca (total_number_of_methods (t)
 +				     * sizeof (struct minimal_symbol *));
 +
 +  msym_arr[0] = NULL;
- 
++
    /* Find all methods with a matching name, and put them in
       sym_arr.  */
  
--  i1 = collect_methods (copy, t, sym_arr);
-+  i1 = collect_methods (copy, t, sym_arr, msym_arr);
+-  i1 = collect_methods (copy, t, sym_class, sym_arr);
++  i1 = collect_methods (copy, t, sym_class, sym_arr, msym_arr);
  
    if (i1 == 1)
      {
@@ -428,11 +431,11 @@
        /* There is more than one field with that name
  	 (overloaded).  Ask the user which one to use.  */
 +      if (msym_arr[0] != NULL)
-+        return decode_line_3 (msym_arr, i1, funfirstline, canonical);
++	return decode_line_3 (msym_arr, i1, funfirstline, canonical);
        return decode_line_2 (sym_arr, i1, funfirstline, canonical);
      }
    else
-@@ -1462,11 +1700,12 @@ find_method (int funfirstline, char ***c
+@@ -1469,11 +1722,12 @@ find_method (int funfirstline, char ***c
  }
  
  /* Find all methods named COPY in the class whose type is T, and put
@@ -441,22 +444,22 @@
  
  static int
  collect_methods (char *copy, struct type *t,
--		 struct symbol **sym_arr)
-+		 struct symbol **sym_arr,
+-		 struct symbol *sym_class, struct symbol **sym_arr)
++		 struct symbol *sym_class, struct symbol **sym_arr,
 +		 struct minimal_symbol **msym_arr)
  {
    int i1 = 0;	/*  Counter for the symbol array.  */
  
-@@ -1488,7 +1727,7 @@ collect_methods (char *copy, struct type
+@@ -1495,7 +1749,7 @@ collect_methods (char *copy, struct type
  	}
      }
    else
--    i1 = find_methods (t, copy, sym_arr);
-+    i1 = find_methods (t, copy, sym_arr, msym_arr);
+-    i1 = find_methods (t, copy, SYMBOL_LANGUAGE (sym_class), sym_arr);
++    i1 = find_methods (t, copy, SYMBOL_LANGUAGE (sym_class), sym_arr, msym_arr);
  
    return i1;
  }
-@@ -1976,12 +2021,13 @@ decode_dollar (char *copy, int funfirstl
+@@ -1717,12 +1971,13 @@ decode_dollar (char *copy, int funfirstl
     and do not issue an error message.  */ 
  
  static struct symtabs_and_lines
@@ -472,7 +475,7 @@
  
    struct minimal_symbol *msymbol;
  
-@@ -2001,8 +2047,25 @@ decode_variable (char *copy, int funfirs
+@@ -1740,8 +1995,25 @@ decode_variable (char *copy, int funfirs
    msymbol = lookup_minimal_symbol (copy, NULL, NULL);
  
    if (msymbol != NULL)
@@ -484,10 +487,10 @@
 +      if (file_symtab == 0)
 +	build_canonical_line_spec (retval.sals, SYMBOL_LINKAGE_NAME (msymbol),
 +				   canonical);
-+
+ 
 +      return retval;
 +    }
- 
++
 +  retval.nelts = 0;
 +  retval.sals = NULL;
 +  return retval;
@@ -499,7 +502,7 @@
    if (!have_full_symbols () &&
        !have_partial_symbols () && !have_minimal_symbols ())
      error (_("No symbol table is loaded.  Use the \"file\" command."));
-@@ -2010,6 +2064,132 @@ decode_variable (char *copy, int funfirs
+@@ -1751,6 +2023,132 @@ decode_variable (char *copy, int funfirs
    throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy);
  }
  
@@ -632,15 +635,17 @@
  
  
  
-diff -u -rup gdb-6.6-orig/gdb/Makefile.in gdb-6.6/gdb/Makefile.in
---- gdb-6.6-orig/gdb/Makefile.in	2007-10-05 15:22:37.000000000 +0200
-+++ gdb-6.6/gdb/Makefile.in	2007-10-05 16:29:10.000000000 +0200
-@@ -2266,7 +2266,7 @@ libunwind-frame.o: libunwind-frame.c $(d
+Index: gdb-6.7/gdb/Makefile.in
+===================================================================
+--- gdb-6.7.orig/gdb/Makefile.in	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/Makefile.in	2007-10-13 05:15:13.000000000 +0200
+@@ -2233,7 +2233,8 @@ libunwind-frame.o: libunwind-frame.c $(d
  linespec.o: linespec.c $(defs_h) $(symtab_h) $(frame_h) $(command_h) \
  	$(symfile_h) $(objfiles_h) $(source_h) $(demangle_h) $(value_h) \
  	$(completer_h) $(cp_abi_h) $(parser_defs_h) $(block_h) \
--	$(objc_lang_h) $(linespec_h) $(exceptions_h)
-+	$(objc_lang_h) $(linespec_h) $(exceptions_h) $(gdb_assert_h)
+-	$(objc_lang_h) $(linespec_h) $(exceptions_h) $(language_h)
++	$(objc_lang_h) $(linespec_h) $(exceptions_h) $(language_h) \
++	$(gdb_assert_h)
  linux-fork.o: linux-fork.c $(defs_h) $(inferior_h) $(regcache_h) $(gdbcmd_h) \
  	$(infcall_h) $(gdb_assert_h) $(gdb_string_h) $(linux_fork_h) \
  	$(linux_nat_h)

gdb-6.3-nonthreaded-wp-20050117.patch:

Index: gdb-6.3-nonthreaded-wp-20050117.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-nonthreaded-wp-20050117.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- gdb-6.3-nonthreaded-wp-20050117.patch	13 Oct 2007 18:40:40 -0000	1.5
+++ gdb-6.3-nonthreaded-wp-20050117.patch	1 Nov 2007 20:24:20 -0000	1.6
@@ -9,10 +9,14 @@
 
 	* gdb.base/follow-child.exp, gdb.base/follow-child.c: New files.
 
-Index: gdb-6.6/gdb/doc/observer.texi
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/doc/observer.texi
 ===================================================================
---- gdb-6.6.orig/gdb/doc/observer.texi
-+++ gdb-6.6/gdb/doc/observer.texi
+--- gdb-6.7.orig/gdb/doc/observer.texi	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/doc/observer.texi	2007-10-14 23:24:52.000000000 +0200
 @@ -119,6 +119,10 @@ when @value{GDBN} calls this observer, t
  haven't been loaded yet.
  @end deftypefun
@@ -24,11 +28,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.6/gdb/linux-nat.c
+Index: gdb-6.7/gdb/linux-nat.c
 ===================================================================
---- gdb-6.6.orig/gdb/linux-nat.c
-+++ gdb-6.6/gdb/linux-nat.c
-@@ -803,11 +803,26 @@ iterate_over_lwps (int (*callback) (stru
+--- gdb-6.7.orig/gdb/linux-nat.c	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.c	2007-10-14 23:24:52.000000000 +0200
+@@ -742,11 +742,26 @@ iterate_over_lwps (int (*callback) (stru
  {
    struct lwp_info *lp, *lpnext;
  
@@ -58,7 +62,7 @@
      }
  
    return NULL;
-@@ -3262,6 +3274,18 @@ linux_nat_add_target (struct target_ops 
+@@ -3272,6 +3284,18 @@ linux_nat_add_target (struct target_ops 
    thread_db_init (t);
  }
  
@@ -77,7 +81,7 @@
  void
  _initialize_linux_nat (void)
  {
-@@ -3276,6 +3300,8 @@ Specify any of the following keywords fo
+@@ -3286,6 +3310,8 @@ Specify any of the following keywords fo
    status   -- list a different bunch of random process info.\n\
    all      -- list all available /proc info."));
  
@@ -86,19 +90,19 @@
    /* Save the original signal mask.  */
    sigprocmask (SIG_SETMASK, NULL, &normal_mask);
  
-Index: gdb-6.6/gdb/target.c
+Index: gdb-6.7/gdb/target.c
 ===================================================================
---- gdb-6.6.orig/gdb/target.c
-+++ gdb-6.6/gdb/target.c
-@@ -40,6 +40,7 @@
- #include "gdb_assert.h"
+--- gdb-6.7.orig/gdb/target.c	2007-08-23 20:08:45.000000000 +0200
++++ gdb-6.7/gdb/target.c	2007-10-14 23:25:13.000000000 +0200
+@@ -39,6 +39,7 @@
  #include "gdbcore.h"
  #include "exceptions.h"
+ #include "target-descriptions.h"
 +#include "observer.h"
  
  static void target_info (char *, int);
  
-@@ -276,6 +277,13 @@ target_load (char *arg, int from_tty)
+@@ -275,6 +276,13 @@ target_load (char *arg, int from_tty)
    (*current_target.to_load) (arg, from_tty);
  }
  
@@ -112,11 +116,11 @@
  static int
  nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
  	  struct target_ops *t)
-Index: gdb-6.6/gdb/target.h
+Index: gdb-6.7/gdb/target.h
 ===================================================================
---- gdb-6.6.orig/gdb/target.h
-+++ gdb-6.6/gdb/target.h
-@@ -891,8 +891,7 @@ int target_follow_fork (int follow_child
+--- gdb-6.7.orig/gdb/target.h	2007-08-23 20:08:46.000000000 +0200
++++ gdb-6.7/gdb/target.h	2007-10-14 23:24:52.000000000 +0200
+@@ -864,8 +864,7 @@ int target_follow_fork (int follow_child
  
  /* The inferior process has died.  Do what is right.  */
  

gdb-6.3-pie-20050110.patch:

Index: gdb-6.3-pie-20050110.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-pie-20050110.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-pie-20050110.patch	21 Jan 2007 01:53:01 -0000	1.3
+++ gdb-6.3-pie-20050110.patch	1 Nov 2007 20:24:20 -0000	1.4
@@ -1,8 +1,8 @@
-Index: gdb-6.6/gdb/dwarf2read.c
+Index: gdb-6.7/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.6.orig/gdb/dwarf2read.c
-+++ gdb-6.6/gdb/dwarf2read.c
-@@ -1219,7 +1219,7 @@ dwarf2_build_psymtabs (struct objfile *o
+--- gdb-6.7.orig/gdb/dwarf2read.c	2007-10-13 05:27:15.000000000 +0200
++++ gdb-6.7/gdb/dwarf2read.c	2007-10-13 05:29:58.000000000 +0200
+@@ -1226,7 +1226,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.6/gdb/auxv.c
+Index: gdb-6.7/gdb/auxv.c
 ===================================================================
---- gdb-6.6.orig/gdb/auxv.c
-+++ gdb-6.6/gdb/auxv.c
-@@ -82,7 +82,7 @@ procfs_xfer_auxv (struct target_ops *ops
+--- gdb-6.7.orig/gdb/auxv.c	2007-08-23 20:08:26.000000000 +0200
++++ gdb-6.7/gdb/auxv.c	2007-10-13 05:29:58.000000000 +0200
+@@ -80,7 +80,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;
-@@ -107,9 +107,10 @@ target_auxv_parse (struct target_ops *op
+@@ -105,9 +105,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
@@ -37,7 +37,7 @@
    gdb_byte *data;
    LONGEST n = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL, &data);
    gdb_byte *ptr = data;
-@@ -119,10 +120,10 @@ target_auxv_search (struct target_ops *o
+@@ -117,10 +118,10 @@ target_auxv_search (struct target_ops *o
      return n;
  
    while (1)
@@ -50,7 +50,7 @@
  	  {
  	    xfree (data);
  	    *valp = val;
-@@ -145,7 +146,8 @@ target_auxv_search (struct target_ops *o
+@@ -143,7 +144,8 @@ target_auxv_search (struct target_ops *o
  int
  fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
  {
@@ -60,7 +60,7 @@
    gdb_byte *data;
    LONGEST len = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL,
  				   &data);
-@@ -155,14 +157,14 @@ fprint_target_auxv (struct ui_file *file
+@@ -153,14 +155,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
-@@ -213,7 +215,7 @@ fprint_target_auxv (struct ui_file *file
+@@ -211,7 +213,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.6/gdb/auxv.h
+Index: gdb-6.7/gdb/auxv.h
 ===================================================================
---- gdb-6.6.orig/gdb/auxv.h
-+++ gdb-6.6/gdb/auxv.h
-@@ -37,14 +37,14 @@ struct target_ops;		/* Forward declarati
+--- gdb-6.7.orig/gdb/auxv.h	2007-08-23 20:08:26.000000000 +0200
++++ gdb-6.7/gdb/auxv.h	2007-10-13 05:29:58.000000000 +0200
+@@ -35,14 +35,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,11 +107,11 @@
  
  /* 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.6/gdb/breakpoint.h
+Index: gdb-6.7/gdb/breakpoint.h
 ===================================================================
---- gdb-6.6.orig/gdb/breakpoint.h
-+++ gdb-6.6/gdb/breakpoint.h
-@@ -159,6 +159,7 @@ enum enable_state
+--- gdb-6.7.orig/gdb/breakpoint.h	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/breakpoint.h	2007-10-13 05:29:58.000000000 +0200
+@@ -153,6 +153,7 @@ enum enable_state
  			   automatically enabled and reset when the call 
  			   "lands" (either completes, or stops at another 
  			   eventpoint). */
@@ -121,7 +121,7 @@
  			   breakpoint instruction on top of it, or restore
 @@ -807,8 +808,12 @@ extern void remove_thread_event_breakpoi
  
- extern void disable_breakpoints_in_shlibs (int silent);
+ extern void disable_breakpoints_in_shlibs (void);
  
 +extern void disable_breakpoints_at_startup (int silent);
 +
@@ -132,11 +132,11 @@
  extern void create_solib_load_event_breakpoint (char *, int, char *, char *);
  
  extern void create_solib_unload_event_breakpoint (char *, int,
-Index: gdb-6.6/gdb/symfile-mem.c
+Index: gdb-6.7/gdb/symfile-mem.c
 ===================================================================
---- 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 
+--- gdb-6.7.orig/gdb/symfile-mem.c	2007-08-23 20:08:39.000000000 +0200
++++ gdb-6.7/gdb/symfile-mem.c	2007-10-13 05:29:58.000000000 +0200
+@@ -108,7 +108,7 @@ symbol_file_add_from_memory (struct bfd 
        }
  
    objf = symbol_file_add_from_bfd (nbfd, from_tty,
@@ -145,11 +145,11 @@
  
    /* This might change our ideas about frames already looked at.  */
    reinit_frame_cache ();
-Index: gdb-6.6/gdb/infrun.c
+Index: gdb-6.7/gdb/infrun.c
 ===================================================================
---- gdb-6.6.orig/gdb/infrun.c
-+++ gdb-6.6/gdb/infrun.c
-@@ -2249,6 +2249,11 @@ process_event_stop_test:
+--- gdb-6.7.orig/gdb/infrun.c	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/infrun.c	2007-10-13 05:29:58.000000000 +0200
+@@ -2305,6 +2305,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.6/gdb/objfiles.c
+Index: gdb-6.7/gdb/objfiles.c
 ===================================================================
---- gdb-6.6.orig/gdb/objfiles.c
-+++ gdb-6.6/gdb/objfiles.c
-@@ -50,6 +50,9 @@
+--- gdb-6.7.orig/gdb/objfiles.c	2007-08-23 20:08:36.000000000 +0200
++++ gdb-6.7/gdb/objfiles.c	2007-10-13 05:29:58.000000000 +0200
+@@ -48,6 +48,9 @@
  #include "dictionary.h"
  #include "source.h"
  
@@ -175,7 +175,7 @@
  /* Prototypes for local functions */
  
  static void objfile_alloc_data (struct objfile *objfile);
-@@ -261,7 +264,19 @@ init_entry_point_info (struct objfile *o
+@@ -259,7 +262,19 @@ init_entry_point_info (struct objfile *o
  CORE_ADDR
  entry_point_address (void)
  {
@@ -196,11 +196,11 @@
  }
  
  /* Create the terminating entry of OBJFILE's minimal symbol table.
-Index: gdb-6.6/gdb/solib-svr4.c
+Index: gdb-6.7/gdb/solib-svr4.c
 ===================================================================
---- gdb-6.6.orig/gdb/solib-svr4.c
-+++ gdb-6.6/gdb/solib-svr4.c
-@@ -34,6 +34,8 @@
+--- gdb-6.7.orig/gdb/solib-svr4.c	2007-10-12 22:34:03.000000000 +0200
++++ gdb-6.7/gdb/solib-svr4.c	2007-10-14 23:04:45.000000000 +0200
+@@ -31,6 +31,8 @@
  #include "gdbcore.h"
  #include "target.h"
  #include "inferior.h"
@@ -209,7 +209,7 @@
  
  #include "gdb_assert.h"
  
-@@ -267,7 +269,9 @@ static char *debug_loader_name;
+@@ -249,7 +251,9 @@ static char *debug_loader_name;
  
  /* Local function prototypes */
  
@@ -217,44 +217,57 @@
  static int match_main (char *);
 +#endif
  
- static CORE_ADDR bfd_lookup_symbol (bfd *, char *, flagword);
+ static CORE_ADDR bfd_lookup_symbol (bfd *, char *);
  
-@@ -389,22 +393,79 @@ elf_locate_base (void)
- {
-   struct bfd_section *dyninfo_sect;
-   int dyninfo_sect_size;
--  CORE_ADDR dyninfo_addr;
-+  CORE_ADDR dyninfo_addr, relocated_dyninfo_addr, entry_addr;
-   gdb_byte *buf;
-   gdb_byte *bufend;
-   int arch_size;
+@@ -352,10 +356,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
+   int arch_size, step, sect_size;
+   long dyn_tag;
+   CORE_ADDR dyn_ptr, dyn_addr;
++  CORE_ADDR entry_addr;
+   gdb_byte *bufend, *bufstart, *buf;
+   Elf32_External_Dyn *x_dynp_32;
+   Elf64_External_Dyn *x_dynp_64;
+   struct bfd_section *sect;
 +  int ret;
+ 
+   if (abfd == NULL)
+     return 0;
+@@ -363,19 +369,74 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
+   if (arch_size == -1)
+    return 0;
+ 
++  /* The auxv vector based relocatable files reading is limited to the main
++     executable.  */
++  gdb_assert (abfd == exec_bfd || ptr == NULL);
 +
-+  /* Find the address of the entry point of the program from the
-+     auxv vector.  */
-+  ret = target_auxv_search (&current_target, AT_ENTRY, &entry_addr);
-+
-+  if (ret == 0 || ret == -1)
++  if (ptr != NULL)
 +    {
-+      /* No auxv info, maybe an older kernel. Fake our way through.  */
-+      entry_addr = bfd_get_start_address (exec_bfd); 
++      /* Find the address of the entry point of the program from the
++	 auxv vector.  */
++      ret = target_auxv_search (&current_target, AT_ENTRY, &entry_addr);
 +
-+      if (debug_solib)
-+	fprintf_unfiltered (gdb_stdlog,
-+			    "elf_locate_base: program entry address not found. Using bfd's 0x%s for %s\n",
-+			    paddr_nz (entry_addr), exec_bfd->filename);
-+    }
-+  else
-+    {
-+      if (debug_solib)
-+	fprintf_unfiltered (gdb_stdlog,
-+			    "elf_locate_base: found program entry address 0x%s for %s\n",
-+			    paddr_nz (entry_addr), exec_bfd->filename);
++      if (ret == 0 || ret == -1)
++	{
++	  /* No auxv info, maybe an older kernel. Fake our way through.  */
++	  entry_addr = bfd_get_start_address (exec_bfd); 
++
++	  if (debug_solib)
++	    fprintf_unfiltered (gdb_stdlog,
++				"elf_locate_base: program entry address not found. Using bfd's 0x%s for %s\n",
++				paddr_nz (entry_addr), exec_bfd->filename);
++	}
++      else
++	{
++	  if (debug_solib)
++	    fprintf_unfiltered (gdb_stdlog,
++				"elf_locate_base: found program entry address 0x%s for %s\n",
++				paddr_nz (entry_addr), exec_bfd->filename);
++	}
 +    }
- 
++
    /* Find the start address of the .dynamic section.  */
-   dyninfo_sect = bfd_get_section_by_name (exec_bfd, ".dynamic");
-   if (dyninfo_sect == NULL)
+   sect = bfd_get_section_by_name (abfd, ".dynamic");
+   if (sect == NULL)
 -    return 0;
 +    { 
 +      if (debug_solib)
@@ -271,50 +284,78 @@
 +			    exec_bfd->filename);
 +    }
 +
-   dyninfo_addr = bfd_section_vma (exec_bfd, dyninfo_sect);
+   dyn_addr = bfd_section_vma (abfd, sect);
 +  if (debug_solib)
 +    fprintf_unfiltered (gdb_stdlog,
-+			"elf_locate_base: unrelocated .dynamic addr 0x%s\n",
-+			paddr_nz (dyninfo_addr));
-+
-+  relocated_dyninfo_addr = dyninfo_addr
-+    + entry_addr - bfd_get_start_address(exec_bfd);
-+  if (debug_solib) 
-+    fprintf_unfiltered (gdb_stdlog, 
-+			"elf_locate_base: relocated .dyn addr 0x%s for %s\n",
-+			paddr_nz(relocated_dyninfo_addr), exec_bfd->filename);
++			"elf_locate_base: .dynamic addr 0x%s\n",
++			paddr_nz (dyn_addr));
  
-   /* Read in .dynamic section, silently ignore errors.  */
-   dyninfo_sect_size = bfd_section_size (exec_bfd, dyninfo_sect);
-   buf = alloca (dyninfo_sect_size);
--  if (target_read_memory (dyninfo_addr, buf, dyninfo_sect_size))
--    return 0;
+   /* Read in .dynamic from the BFD.  We will get the actual value
+      from memory later.  */
+   sect_size = bfd_section_size (abfd, sect);
+   buf = bufstart = alloca (sect_size);
 +  if (debug_solib) 
 +    fprintf_unfiltered (gdb_stdlog, 
 +                        "elf_locate_base: read in .dynamic section\n");
-+  if (target_read_memory (relocated_dyninfo_addr, buf, dyninfo_sect_size))
+   if (!bfd_get_section_contents (abfd, sect,
+ 				 buf, 0, sect_size))
+-    return 0;
 +    { 
 +      if (debug_solib)
 +	fprintf_unfiltered (gdb_stdlog,
-+			    "elf_locate_base: couldn't read .dynamic section at 0x%s -- return now\n",
-+			    paddr_nz (relocated_dyninfo_addr));
++			    "elf_locate_base: couldn't read .dynamic section -- return now\n");
 +      return 0;
 +    }
  
-   /* Find the DT_DEBUG entry in the the .dynamic section.
-      For mips elf we look for DT_MIPS_RLD_MAP, mips elf apparently has
-@@ -431,6 +492,10 @@ elf_locate_base (void)
- 	    {
- 	      dyn_ptr = bfd_h_get_32 (exec_bfd, 
- 				      (bfd_byte *) x_dynp->d_un.d_ptr);
-+              if (debug_solib)
-+                fprintf_unfiltered (gdb_stdlog,
-+				    "elf_locate_base: DT_DEBUG entry has value 0x%s -- return now\n",
-+				    paddr_nz (dyn_ptr));
- 	      return dyn_ptr;
- 	    }
- 	  else if (dyn_tag == DT_MIPS_RLD_MAP)
-@@ -556,6 +621,10 @@ solib_svr4_r_map (void)
+   /* Iterate over BUF and scan for DYNTAG.  If found, set PTR and return.  */
+   step = (arch_size == 32) ? sizeof (Elf32_External_Dyn)
+@@ -408,9 +469,43 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
+ 	     CORE_ADDR ptr_addr;
+ 
+ 	     ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8;
++	     if (ptr != NULL)
++	       {
++		 if (debug_solib)
++		   fprintf_unfiltered (gdb_stdlog,
++				       "elf_locate_base: unrelocated ptr addr 0x%s\n",
++				       paddr_nz (ptr_addr));
++		 ptr_addr += entry_addr - bfd_get_start_address (exec_bfd);
++		 if (debug_solib) 
++		   fprintf_unfiltered (gdb_stdlog, 
++				       "elf_locate_base: relocated ptr addr 0x%s"
++				       " (auxv entry 0x%s, bfd start address 0x%s)"
++				       " for %s\n",
++				       paddr_nz (ptr_addr), paddr_nz (entry_addr),
++				       paddr_nz (bfd_get_start_address (exec_bfd)),
++				       exec_bfd->filename);
++	       }
+ 	     if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0)
+-	       dyn_ptr = extract_typed_address (ptr_buf,
+-						builtin_type_void_data_ptr);
++	       {
++		 dyn_ptr = extract_typed_address (ptr_buf,
++						  builtin_type_void_data_ptr);
++		 if (ptr != NULL)
++		   {
++		     if (debug_solib)
++		       fprintf_unfiltered (gdb_stdlog,
++					   "elf_locate_base: Tag entry has value 0x%s -- return now\n",
++					   paddr_nz (dyn_ptr));
++		   }
++	       }
++	     else
++	       {
++		 if (ptr != NULL)
++		   {
++		     if (debug_solib)
++		       fprintf_unfiltered (gdb_stdlog,
++					   "elf_locate_base: Couldn't read tag entry value -- return now\n");
++		   }
++	       }
+ 	     *ptr = dyn_ptr;
+ 	   }
+ 	 return 1;
+@@ -547,6 +638,10 @@ solib_svr4_r_map (void)
  {
    struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
  
@@ -325,7 +366,7 @@
    return read_memory_typed_address (debug_base + lmo->r_map_offset,
  				    builtin_type_void_data_ptr);
  }
-@@ -713,6 +782,11 @@ svr4_current_sos (void)
+@@ -704,6 +799,11 @@ svr4_current_sos (void)
    struct so_list **link_ptr = &head;
    CORE_ADDR ldsomap = 0;
  
@@ -337,7 +378,7 @@
    /* Make sure we've looked up the inferior's dynamic linker's base
       structure.  */
    if (! debug_base)
-@@ -722,11 +796,21 @@ svr4_current_sos (void)
+@@ -713,11 +813,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)
@@ -360,7 +401,7 @@
    lm = solib_svr4_r_map ();
  
    while (lm)
-@@ -742,23 +826,103 @@ svr4_current_sos (void)
+@@ -733,23 +843,103 @@ svr4_current_sos (void)
        new->lm_info->lm = xzalloc (lmo->link_map_size);
        make_cleanup (xfree, new->lm_info->lm);
  
@@ -465,15 +506,15 @@
  	  target_read_string (LM_NAME (new), &buffer,
  			      SO_NAME_MAX_PATH_SIZE - 1, &errcode);
  	  if (errcode != 0)
-@@ -766,22 +930,37 @@ svr4_current_sos (void)
+@@ -757,23 +947,35 @@ svr4_current_sos (void)
  		     safe_strerror (errcode));
  	  else
  	    {
 -	      strncpy (new->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
 -	      new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
--	      xfree (buffer);
 -	      strcpy (new->so_original_name, new->so_name);
 -	    }
+-	  xfree (buffer);
 -
 -	  /* If this entry has no name, or its name matches the name
 -	     for the main executable, don't include it in the list.  */
@@ -485,22 +526,18 @@
 -	      new->next = 0;
 -	      *link_ptr = new;
 -	      link_ptr = &new->next;
-+              if (debug_solib)
-+                fprintf_unfiltered (gdb_stdlog, 
-+                                    "svr4_current_sos: LM_NAME is <%s>\n",
-+                                    buffer);
-+              /* The name could be empty, in which case it is the
-+                 system supplied DSO.  */
-+              if (strcmp (buffer, "") == 0)
++	      if (debug_solib)
++		fprintf_unfiltered (gdb_stdlog, 
++				    "svr4_current_sos: LM_NAME is <%s>\n",
++				    buffer);
++	      /* The name could be empty, in which case it is the
++		 system supplied DSO.  */
++	      if (strcmp (buffer, "") == 0)
++		free_so (new);
++	      else
 +		{
-+                 xfree (buffer);
-+                 free_so (new);
-+		}
-+              else
-+                {
 +		  strncpy (new->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
 +		  new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
-+		  xfree (buffer);
 +		  strcpy (new->so_original_name, new->so_name);
 +		  if (debug_solib)
 +		    {
@@ -517,9 +554,11 @@
 +		  link_ptr = &new->next;
 +		}
  	    }
++          xfree (buffer);
  	}
  
-@@ -798,6 +977,11 @@ svr4_current_sos (void)
+       /* On Solaris, the dynamic linker is not in the normal list of
+@@ -789,6 +991,11 @@ svr4_current_sos (void)
    if (head == NULL)
      return svr4_default_sos ();
  
@@ -531,7 +570,7 @@
    return head;
  }
  
-@@ -874,7 +1058,7 @@ svr4_fetch_objfile_link_map (struct objf
+@@ -868,7 +1075,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 +579,7 @@
  static int
  match_main (char *soname)
  {
-@@ -888,6 +1072,7 @@ match_main (char *soname)
+@@ -882,6 +1089,7 @@ match_main (char *soname)
  
    return (0);
  }
@@ -548,7 +587,7 @@
  
  /* Return 1 if PC lies in the dynamic symbol resolution code of the
     SVR4 run time loader.  */
-@@ -987,6 +1172,11 @@ enable_break (void)
+@@ -979,6 +1187,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 +599,7 @@
    if (interp_sect)
      {
        unsigned int interp_sect_size;
-@@ -1025,6 +1215,9 @@ enable_break (void)
+@@ -1018,6 +1231,9 @@ enable_break (void)
        if (tmp_fd >= 0)
  	tmp_bfd = bfd_fopen (tmp_pathname, gnutarget, FOPEN_RB, tmp_fd);
  
@@ -570,7 +609,7 @@
        if (tmp_bfd == NULL)
  	goto bkpt_at_symbol;
  
-@@ -1111,6 +1304,9 @@ enable_break (void)
+@@ -1115,6 +1331,9 @@ enable_break (void)
        if (sym_addr != 0)
  	{
  	  create_solib_event_breakpoint (load_addr + sym_addr);
@@ -580,7 +619,7 @@
  	  return 1;
  	}
  
-@@ -1372,6 +1568,8 @@ svr4_solib_create_inferior_hook (void)
+@@ -1375,6 +1594,8 @@ svr4_solib_create_inferior_hook (void)
    while (stop_signal != TARGET_SIGNAL_TRAP);
    stop_soon = NO_STOP_QUIETLY;
  #endif /* defined(_SCO_DS) */
@@ -589,7 +628,7 @@
  }
  
  static void
-@@ -1558,6 +1756,75 @@ svr4_lp64_fetch_link_map_offsets (void)
+@@ -1551,6 +1772,75 @@ svr4_lp64_fetch_link_map_offsets (void)
  
    return lmp;
  }
@@ -664,8 +703,8 @@
 +
  
  
- static struct target_so_ops svr4_so_ops;
-@@ -1580,4 +1847,8 @@ _initialize_svr4_solib (void)
+ struct target_so_ops svr4_so_ops;
+@@ -1592,4 +1882,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,12 +713,12 @@
 +            "Display the inferior's linkmap.");
 +
  }
-Index: gdb-6.6/gdb/varobj.c
+Index: gdb-6.7/gdb/varobj.c
 ===================================================================
---- gdb-6.6.orig/gdb/varobj.c
-+++ gdb-6.6/gdb/varobj.c
-@@ -870,6 +870,62 @@ varobj_list (struct varobj ***varlist)
-   return rootcount;
+--- gdb-6.7.orig/gdb/varobj.c	2007-08-31 21:01:17.000000000 +0200
++++ gdb-6.7/gdb/varobj.c	2007-10-13 05:29:58.000000000 +0200
+@@ -1116,6 +1116,62 @@ install_new_value (struct varobj *var, s
+   return changed;
  }
  
 +void
@@ -741,11 +780,11 @@
  /* 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.6/gdb/solist.h
+Index: gdb-6.7/gdb/solist.h
 ===================================================================
---- gdb-6.6.orig/gdb/solist.h
-+++ gdb-6.6/gdb/solist.h
-@@ -62,6 +62,8 @@ struct so_list
+--- gdb-6.7.orig/gdb/solist.h	2007-08-23 20:08:38.000000000 +0200
++++ gdb-6.7/gdb/solist.h	2007-10-13 05:29:58.000000000 +0200
+@@ -61,6 +61,8 @@ struct so_list
      bfd *abfd;
      char symbols_loaded;	/* flag: symbols read in yet? */
      char from_tty;		/* flag: print msgs? */
@@ -754,7 +793,7 @@
      struct objfile *objfile;	/* objfile for loaded lib */
      struct section_table *sections;
      struct section_table *sections_end;
-@@ -113,9 +115,15 @@ void free_so (struct so_list *so);
+@@ -123,9 +125,15 @@ void free_so (struct so_list *so);
  /* Return address of first so_list entry in master shared object list.  */
  struct so_list *master_so_list (void);
  
@@ -770,29 +809,29 @@
  /* FIXME: gdbarch needs to control this variable */
  extern struct target_so_ops *current_target_so_ops;
  
-@@ -126,4 +134,6 @@ extern struct target_so_ops *current_tar
- #define TARGET_SO_IN_DYNSYM_RESOLVE_CODE \
-   (current_target_so_ops->in_dynsym_resolve_code)
+@@ -143,4 +151,6 @@ struct symbol *solib_global_lookup (cons
+ 				    const domain_enum domain,
+ 				    struct symtab **symtab);
  
 +/* Controls the printing of debugging output.  */
 +extern int debug_solib;
  #endif
-Index: gdb-6.6/gdb/varobj.h
+Index: gdb-6.7/gdb/varobj.h
 ===================================================================
---- gdb-6.6.orig/gdb/varobj.h
-+++ gdb-6.6/gdb/varobj.h
-@@ -99,4 +99,6 @@ extern int varobj_list (struct varobj **
+--- gdb-6.7.orig/gdb/varobj.h	2007-08-31 20:52:05.000000000 +0200
++++ gdb-6.7/gdb/varobj.h	2007-10-13 05:29:58.000000000 +0200
+@@ -114,4 +114,6 @@ extern int varobj_update (struct varobj 
  
- extern int varobj_update (struct varobj **varp, struct varobj ***changelist);
+ extern void varobj_invalidate (void);
  
 +extern void varobj_refresh(void);
 +
  #endif /* VAROBJ_H */
-Index: gdb-6.6/gdb/symfile.c
+Index: gdb-6.7/gdb/symfile.c
 ===================================================================
---- gdb-6.6.orig/gdb/symfile.c
-+++ gdb-6.6/gdb/symfile.c
-@@ -49,6 +49,7 @@
+--- gdb-6.7.orig/gdb/symfile.c	2007-09-24 23:48:05.000000000 +0200
++++ gdb-6.7/gdb/symfile.c	2007-10-13 05:32:14.000000000 +0200
+@@ -47,6 +47,7 @@
  #include "readline/readline.h"
  #include "gdb_assert.h"
  #include "block.h"
@@ -800,7 +839,7 @@
  #include "observer.h"
  #include "exec.h"
  #include "parser-defs.h"
-@@ -659,7 +660,7 @@ syms_from_objfile (struct objfile *objfi
+@@ -779,7 +780,7 @@ syms_from_objfile (struct objfile *objfi
  
    /* Now either addrs or offsets is non-zero.  */
  
@@ -809,7 +848,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.  */
-@@ -687,7 +688,7 @@ syms_from_objfile (struct objfile *objfi
+@@ -807,7 +808,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 +857,7 @@
      {
        asection *lower_sect;
        asection *sect;
-@@ -856,17 +857,21 @@ new_symfile_objfile (struct objfile *obj
+@@ -976,17 +977,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 +881,7 @@
  
    /* We're done reading the symbol file; finish off complaints.  */
    clear_complaints (&symfile_complaints, 0, verbo);
-@@ -909,7 +914,7 @@ symbol_file_add_with_addrs_or_offsets (b
+@@ -1029,7 +1034,7 @@ symbol_file_add_with_addrs_or_offsets (b
       interactively wiping out any existing symbols.  */
  
    if ((have_full_symbols () || have_partial_symbols ())
@@ -851,7 +890,7 @@
        && from_tty
        && !query ("Load new symbol table from \"%s\"? ", name))
      error (_("Not confirmed."));
-@@ -1090,6 +1095,10 @@ symbol_file_clear (int from_tty)
+@@ -1213,6 +1218,10 @@ symbol_file_clear (int from_tty)
  		    symfile_objfile->name)
  	  : !query (_("Discard symbol table? "))))
      error (_("Not confirmed."));
@@ -862,7 +901,7 @@
      free_all_objfiles ();
  
      /* solib descriptors may have handles to objfiles.  Since their
-@@ -2204,6 +2213,8 @@ reread_symbols (void)
+@@ -2470,6 +2479,8 @@ reread_symbols (void)
  	      /* Discard cleanups as symbol reading was successful.  */
  	      discard_cleanups (old_cleanups);
  
@@ -871,19 +910,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.  */
-@@ -2579,6 +2590,7 @@ clear_symtab_users (void)
+@@ -2837,6 +2848,7 @@ clear_symtab_users (void)
+   breakpoint_re_set ();
+   set_default_breakpoint (0, 0, 0, 0);
    clear_pc_function_cache ();
-   if (deprecated_target_new_objfile_hook)
-     deprecated_target_new_objfile_hook (NULL);
 +  varobj_refresh ();
+   observer_notify_new_objfile (NULL);
  
    /* 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
+Index: gdb-6.7/gdb/breakpoint.c
 ===================================================================
---- gdb-6.6.orig/gdb/breakpoint.c
-+++ gdb-6.6/gdb/breakpoint.c
-@@ -781,15 +781,15 @@ insert_watchpoints_for_new_thread (ptid_
+--- gdb-6.7.orig/gdb/breakpoint.c	2007-10-13 05:27:15.000000000 +0200
++++ gdb-6.7/gdb/breakpoint.c	2007-10-13 05:29:58.000000000 +0200
+@@ -840,15 +840,15 @@ insert_watchpoints_for_new_thread (ptid_
  	  struct value *v = b->owner->val_chain;
  
  	  /* Look at each value on the value chain.  */
@@ -902,7 +941,7 @@
  		  
  		  /* We only watch structs and arrays if user asked
  		     for it explicitly, never if they just happen to
-@@ -801,8 +801,8 @@ insert_watchpoints_for_new_thread (ptid_
+@@ -860,8 +860,8 @@ insert_watchpoints_for_new_thread (ptid_
  		      CORE_ADDR addr;
  		      int len, type;
  		      
@@ -913,7 +952,7 @@
  		      type = hw_write;
  		      if (b->owner->type == bp_read_watchpoint)
  			type = hw_read;
-@@ -2682,12 +2682,12 @@ mark_triggered_watchpoints (CORE_ADDR st
+@@ -2749,12 +2749,12 @@ mark_triggered_watchpoints (CORE_ADDR st
  	|| b->type == bp_read_watchpoint
  	|| b->type == bp_access_watchpoint)
        {
@@ -929,7 +968,7 @@
  		    
  		if (v == b->val_chain
  		    || (TYPE_CODE (vtype) != TYPE_CODE_STRUCT
-@@ -2695,11 +2695,11 @@ mark_triggered_watchpoints (CORE_ADDR st
+@@ -2762,11 +2762,11 @@ mark_triggered_watchpoints (CORE_ADDR st
  		  {
  		    CORE_ADDR vaddr;
  			
@@ -943,7 +982,7 @@
  		      b->watchpoint_triggered = 1;
  		  }
  	      }
-@@ -2869,12 +2869,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2936,12 +2936,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  		bs->stop = 0;
  		continue;
  	      }
@@ -959,7 +998,7 @@
  		    
  		    if (v == b->val_chain
  			|| (TYPE_CODE (vtype) != TYPE_CODE_STRUCT
-@@ -2882,11 +2882,11 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2949,11 +2949,11 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  		      {
  			CORE_ADDR vaddr;
  			
@@ -973,7 +1012,7 @@
  			  must_check_value = 1;
  		      }
  		  }
-@@ -3937,6 +3937,7 @@ describe_other_breakpoints (CORE_ADDR pc
+@@ -3996,6 +3996,7 @@ describe_other_breakpoints (CORE_ADDR pc
  	      printf_filtered ("%s%s ",
  			       ((b->enable_state == bp_disabled || 
  				 b->enable_state == bp_shlib_disabled || 
@@ -981,7 +1020,7 @@
  				 b->enable_state == bp_call_disabled) 
  				? " (disabled)"
  				: b->enable_state == bp_permanent 
-@@ -4615,6 +4616,62 @@ re_enable_breakpoints_in_shlibs (void)
+@@ -4669,6 +4670,62 @@ re_enable_breakpoints_in_shlibs (void)
    }
  }
  
@@ -1044,7 +1083,7 @@
  static void
  solib_load_unload_1 (char *hookname, int tempflag, char *dll_pathname,
  		     char *cond_string, enum bptype bp_kind)
-@@ -6961,6 +7018,7 @@ delete_breakpoint (struct breakpoint *bp
+@@ -7084,6 +7141,7 @@ delete_breakpoint (struct breakpoint *bp
  	    && !b->loc->duplicate
  	    && b->enable_state != bp_disabled
  	    && b->enable_state != bp_shlib_disabled
@@ -1052,7 +1091,7 @@
  	    && !b->pending
  	    && b->enable_state != bp_call_disabled)
  	{
-@@ -7176,7 +7234,8 @@ breakpoint_re_set_one (void *bint)
+@@ -7308,7 +7366,8 @@ breakpoint_re_set_one (void *bint)
  	break;
  
        save_enable = b->enable_state;
@@ -1062,20 +1101,20 @@
          b->enable_state = bp_disabled;
        else
  	/* If resetting a shlib-disabled breakpoint, we don't want to
-Index: gdb-6.6/gdb/solib.c
+Index: gdb-6.7/gdb/solib.c
 ===================================================================
---- gdb-6.6.orig/gdb/solib.c
-+++ gdb-6.6/gdb/solib.c
-@@ -72,6 +72,8 @@ solib_ops (struct gdbarch *gdbarch)
+--- gdb-6.7.orig/gdb/solib.c	2007-08-23 20:08:38.000000000 +0200
++++ gdb-6.7/gdb/solib.c	2007-10-13 05:32:46.000000000 +0200
+@@ -78,6 +78,8 @@ set_solib_ops (struct gdbarch *gdbarch, 
  
  /* external data declarations */
  
 +int debug_solib;
 +
- /* FIXME: gdbarch needs to control this variable */
+ /* FIXME: gdbarch needs to control this variable, or else every
+    configuration needs to call set_solib_ops.  */
  struct target_so_ops *current_target_so_ops;
- 
-@@ -102,6 +104,8 @@ The search path for loading non-absolute
+@@ -105,6 +107,8 @@ The search path for loading non-absolute
  		    value);
  }
  
@@ -1084,7 +1123,7 @@
  /*
  
     GLOBAL FUNCTION
-@@ -376,7 +380,6 @@ free_so (struct so_list *so)
+@@ -394,7 +398,6 @@ free_so (struct so_list *so)
    xfree (so);
  }
  
@@ -1092,7 +1131,7 @@
  /* Return address of first so_list entry in master shared object list.  */
  struct so_list *
  master_so_list (void)
-@@ -384,7 +387,6 @@ master_so_list (void)
+@@ -402,7 +405,6 @@ master_so_list (void)
    return so_list_head;
  }
  
@@ -1100,7 +1139,7 @@
  /* A small stub to get us past the arg-passing pinhole of catch_errors.  */
  
  static int
-@@ -396,15 +398,40 @@ symbol_add_stub (void *arg)
+@@ -414,15 +416,40 @@ symbol_add_stub (void *arg)
    /* Have we already loaded this shared object?  */
    ALL_OBJFILES (so->objfile)
      {
@@ -1144,7 +1183,7 @@
    free_section_addr_info (sap);
  
    return (1);
-@@ -532,6 +559,10 @@ update_solib_list (int from_tty, struct 
+@@ -550,6 +577,10 @@ update_solib_list (int from_tty, struct 
  	 the inferior's current list.  */
        while (i)
  	{
@@ -1155,7 +1194,7 @@
  	  if (! strcmp (gdb->so_original_name, i->so_original_name))
  	    break;
  
-@@ -585,28 +616,7 @@ update_solib_list (int from_tty, struct 
+@@ -603,28 +634,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,7 +1224,7 @@
  
  	  /* Notify any observer that the shared object has been
               loaded now that we've added it to GDB's tables.  */
-@@ -702,6 +712,41 @@ solib_add (char *pattern, int from_tty, 
+@@ -720,6 +730,41 @@ solib_add (char *pattern, int from_tty, 
    }
  }
  
@@ -1227,7 +1266,7 @@
  
  /*
  
-@@ -1006,4 +1051,12 @@ This takes precedence over the environme
+@@ -1045,4 +1090,12 @@ This takes precedence over the environme
  				     reload_shared_libraries,
  				     show_solib_search_path,
  				     &setlist, &showlist);
@@ -1240,11 +1279,11 @@
 +			   NULL, NULL,
 +			   &setdebuglist, &showdebuglist);
  }
-Index: gdb-6.6/gdb/elfread.c
+Index: gdb-6.7/gdb/elfread.c
 ===================================================================
---- gdb-6.6.orig/gdb/elfread.c
-+++ gdb-6.6/gdb/elfread.c
-@@ -556,7 +556,7 @@ elf_symfile_read (struct objfile *objfil
+--- gdb-6.7.orig/gdb/elfread.c	2007-08-23 20:08:28.000000000 +0200
++++ gdb-6.7/gdb/elfread.c	2007-10-13 05:29:58.000000000 +0200
+@@ -611,7 +611,7 @@ elf_symfile_read (struct objfile *objfil
    /* If we are reinitializing, or if we have never loaded syms yet,
       set table to empty.  MAINLINE is cleared so that *_read_psymtab
       functions do not all also re-initialize the psymbol table. */
@@ -1253,3 +1292,125 @@
      {
        init_psymbol_list (objfile, 0);
        mainline = 0;
+
+2007-10-31  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7 - workaround too early breakpoint address analysis.
+
+diff -u -X /home/jkratoch/.diffi.list -rup gdb-6.7-orig/gdb/Makefile.in gdb-6.7-patched/gdb/Makefile.in
+--- gdb-6.7-orig/gdb/Makefile.in	2007-10-31 12:50:10.000000000 +0100
++++ gdb-6.7-patched/gdb/Makefile.in	2007-10-31 00:38:11.000000000 +0100
+@@ -1824,7 +1824,7 @@ amd64-tdep.o: amd64-tdep.c $(defs_h) $(a
+ 	$(dummy_frame_h) $(frame_h) $(frame_base_h) $(frame_unwind_h) \
+ 	$(inferior_h) $(gdbcmd_h) $(gdbcore_h) $(objfiles_h) $(regcache_h) \
+ 	$(regset_h) $(symfile_h) $(gdb_assert_h) $(amd64_tdep_h) \
+-	$(i387_tdep_h)
++	$(i387_tdep_h) $(exceptions_h)
+ annotate.o: annotate.c $(defs_h) $(annotate_h) $(value_h) $(target_h) \
+ 	$(gdbtypes_h) $(breakpoint_h)
+ arch-utils.o: arch-utils.c $(defs_h) $(arch_utils_h) $(buildsym_h) \
+diff -u -X /home/jkratoch/.diffi.list -rup gdb-6.7-orig/gdb/amd64-tdep.c gdb-6.7-patched/gdb/amd64-tdep.c
+--- gdb-6.7-orig/gdb/amd64-tdep.c	2007-10-31 12:50:09.000000000 +0100
++++ gdb-6.7-patched/gdb/amd64-tdep.c	2007-10-31 00:46:13.000000000 +0100
+@@ -36,6 +36,7 @@
+ #include "symfile.h"
+ #include "dwarf2-frame.h"
+ #include "gdb_assert.h"
++#include "exceptions.h"
+ 
+ #include "amd64-tdep.h"
+ #include "i387-tdep.h"
+@@ -734,16 +735,28 @@ amd64_alloc_frame_cache (void)
+    Any function that doesn't start with this sequence will be assumed
+    to have no prologue and thus no valid frame pointer in %rbp.  */
+ 
+-static CORE_ADDR
+-amd64_analyze_prologue (CORE_ADDR pc, CORE_ADDR current_pc,
+-			struct amd64_frame_cache *cache)
++struct amd64_analyze_prologue_data
++  {
++    CORE_ADDR pc, current_pc;
++    struct amd64_frame_cache *cache;
++    CORE_ADDR retval;
++  };
++
++static int
++amd64_analyze_prologue_1 (void *data_pointer)
+ {
++  struct amd64_analyze_prologue_data *data = data_pointer;
++  CORE_ADDR pc = data->pc, current_pc = data->current_pc;
++  struct amd64_frame_cache *cache = data->cache;
+   static gdb_byte proto[3] = { 0x48, 0x89, 0xe5 }; /* movq %rsp, %rbp */
+   gdb_byte buf[3];
+   gdb_byte op;
+ 
+   if (current_pc <= pc)
+-    return current_pc;
++    {
++      data->retval = current_pc;
++      return 1;
++    }
+ 
+   op = read_memory_unsigned_integer (pc, 1);
+ 
+@@ -756,18 +769,57 @@ amd64_analyze_prologue (CORE_ADDR pc, CO
+ 
+       /* If that's all, return now.  */
+       if (current_pc <= pc + 1)
+-        return current_pc;
++        {
++	  data->retval = current_pc;
++	  return 1;
++        }
+ 
+       /* Check for `movq %rsp, %rbp'.  */
+       read_memory (pc + 1, buf, 3);
+       if (memcmp (buf, proto, 3) != 0)
+-	return pc + 1;
++	{
++	  data->retval = pc + 1;
++	  return 1;
++	}
+ 
+       /* OK, we actually have a frame.  */
+       cache->frameless_p = 0;
+-      return pc + 4;
++      data->retval = pc + 4;
++      return 1;
+     }
+ 
++  data->retval = pc;
++  return 1;
++}
++
++/* Catch memory read errors and return just PC in such case.
++   It occurs very early on enable_break->new_symfile_objfile->
++   ->breakpoint_re_set->decode_line_1->decode_variable_1->
++   ->find_function_start_sal  */
++
++static CORE_ADDR
++amd64_analyze_prologue (CORE_ADDR pc, CORE_ADDR current_pc,
++			struct amd64_frame_cache *cache)
++{
++  int status;
++  struct amd64_analyze_prologue_data data;
++  struct ui_file *saved_gdb_stderr;
++
++  /* Suppress error messages.  */
++  saved_gdb_stderr = gdb_stderr;
++  gdb_stderr = ui_file_new ();
++
++  data.pc = pc;
++  data.current_pc = current_pc;
++  data.cache = cache;
++  status = catch_errors (amd64_analyze_prologue_1, &data, "", RETURN_MASK_ALL);
++
++  /* Stop suppressing error messages.  */
++  ui_file_delete (gdb_stderr);
++  gdb_stderr = saved_gdb_stderr;
++
++  if (status)
++    return data.retval;
+   return pc;
+ }
+ 

gdb-6.3-ppcdotsolib-20041022.patch:

Index: gdb-6.3-ppcdotsolib-20041022.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-ppcdotsolib-20041022.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-ppcdotsolib-20041022.patch	2 Dec 2004 17:44:10 -0000	1.1
+++ gdb-6.3-ppcdotsolib-20041022.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -3,64 +3,29 @@
  	* solib-svr4.c (enable_break): Convert a symbol descriptor into
  	the corresponding function entry point.
  	(solib_break_names): Delete "._dl_debug_state", no longer needed.
+
+2007-10-12  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
  	
-*** ./gdb/solib-svr4.c.dist	Fri Oct 22 11:50:31 2004
---- ./gdb/solib-svr4.c	Fri Oct 22 11:53:19 2004
-***************
-*** 86,102 ****
-    "_dl_debug_state",
-    "rtld_db_dlactivity",
-    "_rtld_debug_state",
-- 
--   /* On the 64-bit PowerPC, the linker symbol with the same name as
--      the C function points to a function descriptor, not to the entry
--      point.  The linker symbol whose name is the C function name
--      prefixed with a '.' points to the function's entry point.  So
--      when we look through this table, we ignore symbols that point
--      into the data section (thus skipping the descriptor's symbol),
--      and eventually try this one, giving us the real entry point
--      address.  */
--   "._dl_debug_state",
-- 
-    NULL
-  };
-  
---- 86,91 ----
-***************
-*** 1284,1301 ****
-        /* Now try to set a breakpoint in the dynamic linker.  */
-        for (bkpt_namep = solib_break_names; *bkpt_namep != NULL; bkpt_namep++)
-  	{
-!           /* On ABI's that use function descriptors, there are usually
-!              two linker symbols associated with each C function: one
-!              pointing at the actual entry point of the machine code,
-!              and one pointing at the function's descriptor.  The
-!              latter symbol has the same name as the C function.
-! 
-!              What we're looking for here is the machine code entry
-!              point, so we are only interested in symbols in code
-!              sections.  */
-! 	  sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep, SEC_CODE);
-  	  if (sym_addr != 0)
-! 	    break;
-  	}
-  
-        /* We're done with both the temporary bfd and target.  Remember,
---- 1273,1289 ----
-        /* Now try to set a breakpoint in the dynamic linker.  */
-        for (bkpt_namep = solib_break_names; *bkpt_namep != NULL; bkpt_namep++)
-  	{
-! 	  sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep, 0);
-  	  if (sym_addr != 0)
-! 	    {
-! 	      /* The symbol might be a descriptor, convert to into the
-! 		 corresponding code address.  */
-! 	      sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch,
-! 							     sym_addr,
-! 							     tmp_bfd_target);
-! 	      if (sym_addr != 0)
-! 		break;
-! 	    }
-  	}
-  
-        /* We're done with both the temporary bfd and target.  Remember,
+Index: gdb-6.7/gdb/solib-svr4.c
+===================================================================
+--- gdb-6.7.orig/gdb/solib-svr4.c	2007-10-09 20:03:30.000000000 +0200
++++ gdb-6.7/gdb/solib-svr4.c	2007-10-12 22:34:03.000000000 +0200
+@@ -1089,7 +1089,15 @@ enable_break (void)
+ 	{
+ 	  sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep);
+ 	  if (sym_addr != 0)
+-	    break;
++	    {
++	      /* The symbol might be a descriptor, convert to into the
++		 corresponding code address.  */
++	      sym_addr = gdbarch_convert_from_func_ptr_addr (current_gdbarch,
++							     sym_addr,
++							     tmp_bfd_target);
++	      if (sym_addr != 0)
++		break;
++	    }
+ 	}
+ 
+       if (sym_addr != 0)

gdb-6.3-sepcrc-20050402.patch:

Index: gdb-6.3-sepcrc-20050402.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-sepcrc-20050402.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-sepcrc-20050402.patch	2 Apr 2005 22:38:09 -0000	1.1
+++ gdb-6.3-sepcrc-20050402.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -83,3 +83,12 @@
      {
        xfree (basename);
        xfree (dir);
+@@ -1952,7 +1952,7 @@ find_separate_debug_file (struct objfile
+       strcat (debugfile, "/");
+       strcat (debugfile, basename);
+ 
+-      if (separate_debug_file_exists (debugfile, crc32))
++      if (separate_debug_file_exists (debugfile, crc32, objfile->name))
+ 	{
+ 	  xfree (build_id_filename);
+ 	  xfree (canon_name);

gdb-6.3-terminal-fix-20050214.patch:

Index: gdb-6.3-terminal-fix-20050214.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-terminal-fix-20050214.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-terminal-fix-20050214.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-terminal-fix-20050214.patch	1 Nov 2007 20:24:20 -0000	1.3
@@ -3,13 +3,17 @@
 	* top.c (gdb_readline_wrapper): Ensure terminal is gdb's before calling
 	readline.
 
-Index: gdb-6.5/gdb/top.c
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/top.c
 ===================================================================
---- gdb-6.5.orig/gdb/top.c	2006-03-29 19:53:33.000000000 -0300
-+++ gdb-6.5/gdb/top.c	2006-07-07 02:29:42.000000000 -0300
-@@ -728,6 +728,14 @@ gdb_readline_wrapper (char *prompt)
-       after_char_processing_hook = NULL;
-     }
+--- gdb-6.7.orig/gdb/top.c	2007-09-02 23:13:56.000000000 +0200
++++ gdb-6.7/gdb/top.c	2007-10-14 23:38:27.000000000 +0200
+@@ -795,6 +795,14 @@ gdb_readline_wrapper (char *prompt)
+ 
+   back_to = make_cleanup (gdb_readline_wrapper_cleanup, cleanup);
  
 +  /* Before calling readline, ensure we have the terminal.  If we don't
 +     have the terminal and call readline, we risk the possibility of
@@ -19,6 +23,6 @@
 +     a page break prompt.  */
 +  terminal_ours ();
 +
-   return readline (prompt);
- }
- 
+   /* Display our prompt and prevent double prompt display.  */
+   display_gdb_prompt (prompt);
+   rl_already_prompted = 1;

gdb-6.3-test-dtorfix-20050121.patch:

Index: gdb-6.3-test-dtorfix-20050121.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-test-dtorfix-20050121.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- gdb-6.3-test-dtorfix-20050121.patch	8 Oct 2007 19:12:38 -0000	1.5
+++ gdb-6.3-test-dtorfix-20050121.patch	1 Nov 2007 20:24:20 -0000	1.6
@@ -1,29 +1,13 @@
-Index: gdb/testsuite/ChangeLog
-2005-01-21  Jeff Johnston  <jjohnstn at redhat.com>
+[base]
 
-	* gdb.cp/constructortest.exp: New test.
-	* gdb.cp/constructortest.cc: Ditto.
-	* gdb.cp/templates.exp: Change break of dtor to	be fully quoted.
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
-2007-09-22  Jan Kratochvil <jan.kratochvil at redhat.com>
+	Port to GDB-6.7.
 
-	* gdb.cp/constructortest.exp, gdb.cp/constructortest.cc: Test also the
-	`$delete' destructor variant.
-
-2007-09-25  Jan Kratochvil <jan.kratochvil at redhat.com>
-
-	* gdb.cp/constructortest.exp: Delete the FIXME workaround of restarting
-	the whole GDB.
-
-2007-10-05  Jan Kratochvil <jan.kratochvil at redhat.com>
-
-	* gdb.cp/constructortest.exp: Test BREAKPOINT_RE_SET for multiple PCs
-	by PIE.
-	* gdb.cp/constructortest.exp: Handle the change of settings breakpoints
-	always at all the ctor/dtor variants.
-
---- gdb-6.3/gdb/testsuite/gdb.cp/constructortest.cc.fix	Fri Jan 21 17:06:56 2005
-+++ gdb-6.3/gdb/testsuite/gdb.cp/constructortest.cc	Fri Jan 21 17:05:18 2005
+Index: gdb-6.7/gdb/testsuite/gdb.cp/constructortest.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.cp/constructortest.cc	2007-10-14 23:29:48.000000000 +0200
 @@ -0,0 +1,99 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -124,8 +108,10 @@
 +{
 +   y = 2; /* First line D */
 +}
---- gdb-6.3/gdb/testsuite/gdb.cp/constructortest.exp.fix	Fri Jan 21 17:07:02 2005
-+++ gdb-6.3/gdb/testsuite/gdb.cp/constructortest.exp	Fri Jan 21 17:05:29 2005
+Index: gdb-6.7/gdb/testsuite/gdb.cp/constructortest.exp
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.cp/constructortest.exp	2007-10-14 23:29:48.000000000 +0200
 @@ -0,0 +1,148 @@
 +# This testcase is part of GDB, the GNU debugger.
 +
@@ -275,14 +261,10 @@
 +}
 +
 +gdb_continue_to_breakpoint "First line ~C"
---- gdb-6.3/gdb/testsuite/gdb.cp/templates.exp.fix	Fri Jan 21 17:07:10 2005
-+++ gdb-6.3/gdb/testsuite/gdb.cp/templates.exp	Fri Jan 21 17:09:09 2005
-@@ -1,4 +1,4 @@
--# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004
-+# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
- # Free Software Foundation, Inc.
- 
- # This program is free software; you can redistribute it and/or modify
+Index: gdb-6.7/gdb/testsuite/gdb.cp/templates.exp
+===================================================================
+--- gdb-6.7.orig/gdb/testsuite/gdb.cp/templates.exp	2007-08-23 20:14:17.000000000 +0200
++++ gdb-6.7/gdb/testsuite/gdb.cp/templates.exp	2007-10-14 23:29:48.000000000 +0200
 @@ -142,7 +142,7 @@ proc test_template_breakpoints {} {
  # See CLLbs14792
      if {$hp_aCC_compiler} {setup_xfail hppa*-*-* CLLbs14792}

gdb-6.3-test-pie-20050107.patch:

Index: gdb-6.3-test-pie-20050107.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-test-pie-20050107.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-test-pie-20050107.patch	11 Jul 2006 06:33:02 -0000	1.2
+++ gdb-6.3-test-pie-20050107.patch	1 Nov 2007 20:24:20 -0000	1.3
@@ -1,38 +1,43 @@
-Index: gdb-6.5/gdb/testsuite/configure.ac
+2007-10-13  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/testsuite/configure.ac
 ===================================================================
---- gdb-6.5.orig/gdb/testsuite/configure.ac	2006-07-07 01:12:31.000000000 -0300
-+++ gdb-6.5/gdb/testsuite/configure.ac	2006-07-07 01:13:23.000000000 -0300
-@@ -114,4 +114,4 @@ AC_OUTPUT([Makefile \
+--- gdb-6.7.orig/gdb/testsuite/configure.ac	2007-08-23 19:58:44.000000000 +0200
++++ gdb-6.7/gdb/testsuite/configure.ac	2007-10-13 05:28:28.000000000 +0200
+@@ -114,5 +114,5 @@ AC_OUTPUT([Makefile \
    gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile \
    gdb.fortran/Makefile gdb.server/Makefile \
    gdb.java/Makefile gdb.mi/Makefile \
--  gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile])
-+  gdb.objc/Makefile gdb.pie/Makefile gdb.threads/Makefile gdb.trace/Makefile])
-Index: gdb-6.5/gdb/testsuite/configure
+-  gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile \
++  gdb.objc/Makefile gdb.pie/Makefile gdb.threads/Makefile gdb.trace/Makefile \
+   gdb.xml/Makefile])
+Index: gdb-6.7/gdb/testsuite/configure
 ===================================================================
---- gdb-6.5.orig/gdb/testsuite/configure	2006-07-07 01:12:31.000000000 -0300
-+++ gdb-6.5/gdb/testsuite/configure	2006-07-07 01:13:23.000000000 -0300
-@@ -3075,7 +3075,7 @@ done
+--- gdb-6.7.orig/gdb/testsuite/configure	2007-01-23 18:11:54.000000000 +0100
++++ gdb-6.7/gdb/testsuite/configure	2007-10-13 05:29:11.000000000 +0200
+@@ -3102,7 +3102,7 @@ done
  
  
  
--                                                                                                                                                      ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile"
-+                                                                                                                                                                ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile gdb.pie/Makefile gdb.threads/Makefile gdb.trace/Makefile"
+-                                                                                                                                                                ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
++                                                                                                                                                                ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.objc/Makefile gdb.pie/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
  cat >confcache <<\_ACEOF
  # This file is a shell script that caches the results of configure
  # tests run on this system so they can be shared between configure
-@@ -3639,6 +3639,7 @@ do
+@@ -3666,6 +3666,7 @@ do
    "gdb.java/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.java/Makefile" ;;
    "gdb.mi/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.mi/Makefile" ;;
    "gdb.objc/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.objc/Makefile" ;;
 +  "gdb.pie/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.pie/Makefile" ;;
    "gdb.threads/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.threads/Makefile" ;;
    "gdb.trace/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.trace/Makefile" ;;
-   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-Index: gdb-6.5/gdb/testsuite/gdb.pie/attach.c
+   "gdb.xml/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.xml/Makefile" ;;
+Index: gdb-6.7/gdb/testsuite/gdb.pie/attach.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/attach.c	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/attach.c	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,20 @@
 +/* This program is intended to be started outside of gdb, and then
 +   attached to by gdb.  Thus, it simply spins in a loop.  The loop
@@ -54,10 +59,10 @@
 +    }
 +  return 0;
 +}
-Index: gdb-6.5/gdb/testsuite/gdb.pie/attach2.c
+Index: gdb-6.7/gdb/testsuite/gdb.pie/attach2.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/attach2.c	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/attach2.c	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,24 @@
 +/* This program is intended to be started outside of gdb, and then
 +   attached to by gdb.  Thus, it simply spins in a loop.  The loop
@@ -83,10 +88,10 @@
 +    }
 +  return (0);
 +}
-Index: gdb-6.5/gdb/testsuite/gdb.pie/break.c
+Index: gdb-6.7/gdb/testsuite/gdb.pie/break.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/break.c	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/break.c	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,146 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -234,10 +239,10 @@
 +    }
 +  return 0;
 +}
-Index: gdb-6.5/gdb/testsuite/gdb.pie/break1.c
+Index: gdb-6.7/gdb/testsuite/gdb.pie/break1.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/break1.c	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/break1.c	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,44 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -283,10 +288,10 @@
 +void marker3 (a, b) char *a, *b; {}	/* set breakpoint 18 here */
 +void marker4 (d) long d; {}		/* set breakpoint 13 here */
 +#endif
-Index: gdb-6.5/gdb/testsuite/gdb.pie/coremaker.c
+Index: gdb-6.7/gdb/testsuite/gdb.pie/coremaker.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/coremaker.c	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/coremaker.c	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,142 @@
 +/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
 +   Free Software Foundation, Inc.
@@ -430,10 +435,10 @@
 +  return 0;
 +}
 +
-Index: gdb-6.5/gdb/testsuite/gdb.pie/attach.exp
+Index: gdb-6.7/gdb/testsuite/gdb.pie/attach.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/attach.exp	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/attach.exp	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,432 @@
 +#   Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
 +
@@ -867,10 +872,10 @@
 +do_call_attach_tests
 +
 +return 0
-Index: gdb-6.5/gdb/testsuite/gdb.pie/break.exp
+Index: gdb-6.7/gdb/testsuite/gdb.pie/break.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/break.exp	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/break.exp	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,973 @@
 +#   Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
 +#   2000, 2002, 2003, 2004
@@ -1845,10 +1850,10 @@
 +    send_gdb "set args main\n"
 +    gdb_expect -re ".*$gdb_prompt $" {}
 +}
-Index: gdb-6.5/gdb/testsuite/gdb.pie/corefile.exp
+Index: gdb-6.7/gdb/testsuite/gdb.pie/corefile.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/corefile.exp	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/corefile.exp	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,243 @@
 +# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
 +# Free Software Foundation, Inc.
@@ -2093,10 +2098,10 @@
 +gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(\\).*" "up in corefile.exp (reinit)"
 +
 +gdb_test "core" "No core file now."
-Index: gdb-6.5/gdb/testsuite/gdb.pie/Makefile.in
+Index: gdb-6.7/gdb/testsuite/gdb.pie/Makefile.in
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.pie/Makefile.in	2006-07-07 01:13:23.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.pie/Makefile.in	2007-10-13 05:27:45.000000000 +0200
 @@ -0,0 +1,19 @@
 +VPATH = @srcdir@
 +srcdir = @srcdir@

gdb-6.3-threaded-watchpoints-20041213.patch:

Index: gdb-6.3-threaded-watchpoints-20041213.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-threaded-watchpoints-20041213.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- gdb-6.3-threaded-watchpoints-20041213.patch	11 Jul 2006 18:04:20 -0000	1.6
+++ gdb-6.3-threaded-watchpoints-20041213.patch	1 Nov 2007 20:24:20 -0000	1.7
@@ -28,15 +28,18 @@
 	* doc/observer.texi: Add two new observers for linux_new_thread
 	and sigtrap.
 
-Index: gdb-6.5/gdb/doc/observer.texi
+2007-10-13  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/doc/observer.texi
 ===================================================================
---- gdb-6.5.orig/gdb/doc/observer.texi	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/doc/observer.texi	2006-07-11 15:00:15.000000000 -0300
-@@ -122,3 +122,13 @@ haven't been loaded yet.
- @deftypefun void solib_unloaded (struct so_list *@var{solib})
- The shared library specified by @var{solib} has been unloaded.
+--- gdb-6.7.orig/gdb/doc/observer.texi	2007-05-11 21:55:20.000000000 +0200
++++ gdb-6.7/gdb/doc/observer.texi	2007-10-13 04:51:21.000000000 +0200
+@@ -129,3 +129,12 @@ Called with @var{objfile} equal to @code
+ previously loaded symbol table data has now been invalidated.
  @end deftypefun
-+
+ 
 + at deftypefun void linux_new_thread (ptid_t @var{ptid})
 +A new linux thread described by @var{ptid} has been officially attached
 +to by gdb.
@@ -46,11 +49,11 @@
 +A low-level SIGTRAP has been discovered.  This notification can be used to save
 +additional state necessary if the trap is deferred for later handling.
 + at end deftypefun
-Index: gdb-6.5/gdb/infrun.c
+Index: gdb-6.7/gdb/infrun.c
 ===================================================================
---- gdb-6.5.orig/gdb/infrun.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/infrun.c	2006-07-11 15:00:17.000000000 -0300
-@@ -1703,9 +1703,19 @@ handle_inferior_event (struct execution_
+--- gdb-6.7.orig/gdb/infrun.c	2007-10-12 22:35:58.000000000 +0200
++++ gdb-6.7/gdb/infrun.c	2007-10-13 04:50:11.000000000 +0200
+@@ -1784,9 +1784,19 @@ handle_inferior_event (struct execution_
       single step over a watchpoint without disabling the watchpoint.  */
    if (HAVE_STEPPABLE_WATCHPOINT && STOPPED_BY_WATCHPOINT (ecs->ws))
      {
@@ -71,16 +74,16 @@
        prepare_to_wait (ecs);
        return;
      }
-@@ -1715,6 +1725,8 @@ handle_inferior_event (struct execution_
-      register or page protection watchpoint scheme need here?  */
-   if (HAVE_NONSTEPPABLE_WATCHPOINT && STOPPED_BY_WATCHPOINT (ecs->ws))
+@@ -1797,6 +1807,8 @@ handle_inferior_event (struct execution_
+   if (gdbarch_have_nonsteppable_watchpoint (current_gdbarch)
+       && STOPPED_BY_WATCHPOINT (ecs->ws))
      {
 +      CORE_ADDR addr = 0;
 +
        /* At this point, we are stopped at an instruction which has
           attempted to write to a piece of memory under control of
           a watchpoint.  The instruction hasn't actually executed
-@@ -1722,15 +1734,12 @@ handle_inferior_event (struct execution_
+@@ -1804,15 +1816,12 @@ handle_inferior_event (struct execution_
           now, we would get the old value, and therefore no change
           would seem to have occurred.
  
@@ -102,7 +105,7 @@
  
        if (debug_infrun)
  	fprintf_unfiltered (gdb_stdlog, "infrun: STOPPED_BY_WATCHPOINT\n");
-@@ -1801,6 +1810,41 @@ handle_inferior_event (struct execution_
+@@ -1883,6 +1892,41 @@ handle_inferior_event (struct execution_
  	}
      }
  
@@ -144,7 +147,7 @@
    /* Look at the cause of the stop, and decide what to do.
       The alternatives are:
       1) break; to really stop and return to the debugger,
-@@ -1852,6 +1896,8 @@ handle_inferior_event (struct execution_
+@@ -1935,6 +1979,8 @@ handle_inferior_event (struct execution_
           See more comments in inferior.h.  */
        if (stop_soon == STOP_QUIETLY_NO_SIGSTOP)
  	{
@@ -153,11 +156,11 @@
  	  stop_stepping (ecs);
  	  if (stop_signal == TARGET_SIGNAL_STOP)
  	    stop_signal = TARGET_SIGNAL_0;
-Index: gdb-6.5/gdb/breakpoint.c
+Index: gdb-6.7/gdb/breakpoint.c
 ===================================================================
---- gdb-6.5.orig/gdb/breakpoint.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/breakpoint.c	2006-07-11 15:00:19.000000000 -0300
-@@ -748,6 +748,90 @@ insert_catchpoint (struct ui_out *uo, vo
+--- gdb-6.7.orig/gdb/breakpoint.c	2007-08-30 00:07:47.000000000 +0200
++++ gdb-6.7/gdb/breakpoint.c	2007-10-13 04:50:11.000000000 +0200
+@@ -806,6 +806,90 @@ insert_catchpoint (struct ui_out *uo, vo
      }
  }
  
@@ -247,8 +250,8 @@
 +
  /* Helper routine: free the value chain for a breakpoint (watchpoint).  */
  
- static void free_valchain (struct bp_location *b)
-@@ -1190,6 +1274,7 @@ remove_breakpoints (void)
+ static void
+@@ -1294,6 +1378,7 @@ remove_breakpoints (void)
  {
    struct bp_location *b;
    int val;
@@ -256,7 +259,7 @@
  
    ALL_BP_LOCATIONS (b)
    {
-@@ -1197,10 +1282,10 @@ remove_breakpoints (void)
+@@ -1301,10 +1386,10 @@ remove_breakpoints (void)
        {
  	val = remove_breakpoint (b, mark_uninserted);
  	if (val != 0)
@@ -269,7 +272,7 @@
  }
  
  int
-@@ -2126,8 +2211,13 @@ print_it_typical (bpstat bs)
+@@ -2187,8 +2272,13 @@ print_it_typical (bpstat bs)
        break;
  
      case bp_thread_event:
@@ -285,7 +288,7 @@
        printf_filtered (_("Thread Event Breakpoint: gdb should not stop!\n"));
        return PRINT_NOTHING;
        break;
-@@ -2567,6 +2657,54 @@ which its expression is valid.\n");     
+@@ -2636,6 +2726,54 @@ which its expression is valid.\n");     
      }
  }
  
@@ -340,7 +343,7 @@
  /* Get a bpstat associated with having just stopped at address
     BP_ADDR in thread PTID.  STOPPED_BY_WATCHPOINT is 1 if the
     target thinks we stopped due to a hardware watchpoint, 0 if we
-@@ -2697,82 +2835,61 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2766,82 +2904,61 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
      bs->stop = 1;
      bs->print = 1;
  
@@ -468,7 +471,7 @@
  	  {
  	    char *message = xstrprintf ("Error evaluating expression for watchpoint %d\n",
  					b->number);
-@@ -2801,6 +2918,15 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2870,6 +2987,15 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  		break;
  	      case WP_VALUE_NOT_CHANGED:
  		/* Stop.  */
@@ -484,7 +487,7 @@
  		++(b->hit_count);
  		break;
  	      default:
-@@ -2816,7 +2942,7 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
+@@ -2885,7 +3011,7 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
  		break;
  	      }
  	  }
@@ -493,7 +496,7 @@
  	  {
  	    /* This is a case where some watchpoint(s) triggered,
  	       but not at the address of this watchpoint (FOUND
-@@ -4112,6 +4238,7 @@ set_raw_breakpoint (struct symtab_and_li
+@@ -4186,6 +4312,7 @@ set_raw_breakpoint (struct symtab_and_li
    b->exec_pathname = NULL;
    b->ops = NULL;
    b->pending = 0;
@@ -501,11 +504,11 @@
  
    /* Add this breakpoint to the end of the chain
       so that a list of breakpoints will come out in order
-Index: gdb-6.5/gdb/breakpoint.h
+Index: gdb-6.7/gdb/breakpoint.h
 ===================================================================
---- gdb-6.5.orig/gdb/breakpoint.h	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/breakpoint.h	2006-07-11 15:00:17.000000000 -0300
-@@ -426,6 +426,11 @@ struct breakpoint
+--- gdb-6.7.orig/gdb/breakpoint.h	2007-08-23 20:08:26.000000000 +0200
++++ gdb-6.7/gdb/breakpoint.h	2007-10-13 04:50:11.000000000 +0200
+@@ -420,6 +420,11 @@ struct breakpoint
  
      /* Is breakpoint pending on shlib loads?  */
      int pending;
@@ -517,7 +520,7 @@
    };
  
  /* The following stuff is an abstract data type "bpstat" ("breakpoint
-@@ -692,6 +697,14 @@ extern void tbreak_command (char *, int)
+@@ -688,6 +693,14 @@ extern void tbreak_command (char *, int)
  
  extern int insert_breakpoints (void);
  
@@ -532,11 +535,11 @@
  extern int remove_breakpoints (void);
  
  /* This function can be used to physically insert eventpoints from the
-Index: gdb-6.5/gdb/linux-nat.c
+Index: gdb-6.7/gdb/linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/linux-nat.c	2006-07-11 12:32:29.000000000 -0300
-+++ gdb-6.5/gdb/linux-nat.c	2006-07-11 15:00:15.000000000 -0300
-@@ -36,6 +36,7 @@
+--- gdb-6.7.orig/gdb/linux-nat.c	2007-10-12 22:35:58.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.c	2007-10-13 04:50:11.000000000 +0200
+@@ -34,6 +34,7 @@
  #include "gdbthread.h"
  #include "gdbcmd.h"
  #include "regcache.h"
@@ -544,7 +547,7 @@
  #include "regset.h"
  #include "inf-ptrace.h"
  #include "auxv.h"
-@@ -764,6 +765,9 @@ delete_lwp (ptid_t ptid)
+@@ -704,6 +705,9 @@ delete_lwp (ptid_t ptid)
    else
      lwp_list = lp->next;
  
@@ -554,7 +557,7 @@
    xfree (lp);
  }
  
-@@ -1478,6 +1482,13 @@ stop_wait_callback (struct lwp_info *lp,
+@@ -1501,6 +1505,13 @@ stop_wait_callback (struct lwp_info *lp,
  	         user will delete or disable the breakpoint, but the
  	         thread will have already tripped on it.  */
  
@@ -568,7 +571,7 @@
  	      /* Now resume this LWP and get the SIGSTOP event. */
  	      errno = 0;
  	      ptrace (PTRACE_CONT, GET_LWP (lp->ptid), 0, 0);
-@@ -2054,6 +2065,14 @@ retry:
+@@ -2061,6 +2072,14 @@ retry:
  				 target_pid_to_str (lp->ptid));
  	    }
  
@@ -583,11 +586,11 @@
  	  /* Handle GNU/Linux's extended waitstatus for trace events.  */
  	  if (WIFSTOPPED (status) && WSTOPSIG (status) == SIGTRAP && status >> 16 != 0)
  	    {
-Index: gdb-6.5/gdb/linux-nat.h
+Index: gdb-6.7/gdb/linux-nat.h
 ===================================================================
---- gdb-6.5.orig/gdb/linux-nat.h	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/linux-nat.h	2006-07-11 12:32:29.000000000 -0300
-@@ -63,6 +63,18 @@ struct lwp_info
+--- gdb-6.7.orig/gdb/linux-nat.h	2007-10-12 22:35:58.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.h	2007-10-13 04:50:11.000000000 +0200
+@@ -61,6 +61,18 @@ struct lwp_info
  
    /* Next LWP in list.  */
    struct lwp_info *next;
@@ -606,41 +609,41 @@
  };
  
  /* Attempt to initialize libthread_db.  */
-Index: gdb-6.5/gdb/Makefile.in
+Index: gdb-6.7/gdb/Makefile.in
 ===================================================================
---- gdb-6.5.orig/gdb/Makefile.in	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/Makefile.in	2006-07-11 15:00:19.000000000 -0300
-@@ -2113,7 +2113,7 @@ i387-tdep.o: i387-tdep.c $(defs_h) $(dou
+--- gdb-6.7.orig/gdb/Makefile.in	2007-09-05 02:14:02.000000000 +0200
++++ gdb-6.7/gdb/Makefile.in	2007-10-13 04:50:53.000000000 +0200
+@@ -2160,7 +2160,7 @@ i387-tdep.o: i387-tdep.c $(defs_h) $(dou
  	$(gdb_assert_h) $(gdb_string_h) $(i386_tdep_h) $(i387_tdep_h)
  ia64-linux-nat.o: ia64-linux-nat.c $(defs_h) $(gdb_string_h) $(inferior_h) \
  	$(target_h) $(gdbcore_h) $(regcache_h) $(ia64_tdep_h) $(gdb_wait_h) \
 -	$(gregset_h) $(linux_nat_h)
 +	$(gregset_h) $(observer_h) $(linux_nat_h)
  ia64-linux-tdep.o: ia64-linux-tdep.c $(defs_h) $(ia64_tdep_h) \
- 	$(arch_utils_h) $(gdbcore_h) $(regcache_h) $(osabi_h) $(solib_svr4_h)
- ia64-tdep.o: ia64-tdep.c $(defs_h) $(inferior_h) $(gdbcore_h) \
-@@ -2518,7 +2518,7 @@ rs6000-tdep.o: rs6000-tdep.c $(defs_h) $
- 	$(frame_unwind_h) $(frame_base_h) $(rs6000_tdep_h)
- rs6000-aix-tdep.o: rs6000-aix-tdep.c $(defs_h) $(osabi_h) $(rs6000_tdep_h)
- s390-nat.o: s390-nat.c $(defs_h) $(tm_h) $(regcache_h) $(inferior_h) \
+ 	$(arch_utils_h) $(gdbcore_h) $(regcache_h) $(osabi_h) $(solib_svr4_h) \
+ 	$(symtab_h)
+@@ -2541,7 +2541,7 @@ rs6000-tdep.o: rs6000-tdep.c $(defs_h) $
+ rs6000-aix-tdep.o: rs6000-aix-tdep.c $(defs_h) $(gdb_string_h) $(osabi_h) \
+ 	$(regcache_h) $(regset_h) $(rs6000_tdep_h) $(ppc_tdep_h)
+ s390-nat.o: s390-nat.c $(defs_h) $(regcache_h) $(inferior_h) \
 -	$(s390_tdep_h) $(target_h) $(linux_nat_h)
-+	$(s390_tdep_h) $(target_h) $(observer_h) $(linux_nat_h)
++	$(s390_tdep_h) $(target_h) $(linux_nat_h) $(observer_h)
  s390-tdep.o: s390-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) $(inferior_h) \
  	$(symtab_h) $(target_h) $(gdbcore_h) $(gdbcmd_h) $(objfiles_h) \
  	$(floatformat_h) $(regcache_h) $(trad_frame_h) $(frame_base_h) \
-Index: gdb-6.5/gdb/linux-thread-db.c
+Index: gdb-6.7/gdb/linux-thread-db.c
 ===================================================================
---- gdb-6.5.orig/gdb/linux-thread-db.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/linux-thread-db.c	2006-07-11 15:00:18.000000000 -0300
-@@ -36,6 +36,7 @@
+--- gdb-6.7.orig/gdb/linux-thread-db.c	2007-08-23 20:08:35.000000000 +0200
++++ gdb-6.7/gdb/linux-thread-db.c	2007-10-13 04:53:59.000000000 +0200
+@@ -34,6 +34,7 @@
  #include "target.h"
  #include "regcache.h"
  #include "solib-svr4.h"
 +#include "observer.h"
  #include "gdbcore.h"
+ #include "observer.h"
  #include "linux-nat.h"
- 
-@@ -718,6 +719,7 @@ attach_thread (ptid_t ptid, const td_thr
+@@ -673,6 +674,7 @@ attach_thread (ptid_t ptid, const td_thr
  {
    struct thread_info *tp;
    td_err_e err;
@@ -648,17 +651,21 @@
  
    /* If we're being called after a TD_CREATE event, we may already
       know about this thread.  There are two ways this can happen.  We
-@@ -753,11 +755,18 @@ attach_thread (ptid_t ptid, const td_thr
+@@ -700,8 +702,10 @@ attach_thread (ptid_t ptid, const td_thr
    if (ti_p->ti_state == TD_THR_UNKNOWN || ti_p->ti_state == TD_THR_ZOMBIE)
      return;			/* A zombie thread -- do not attach.  */
  
 +  new_ptid = BUILD_LWP (ti_p->ti_lid, GET_PID (ptid));
 +
    /* Under GNU/Linux, we have to attach to each and every thread.  */
- #ifdef ATTACH_LWP
--  ATTACH_LWP (BUILD_LWP (ti_p->ti_lid, GET_PID (ptid)), 0);
-+  ATTACH_LWP (new_ptid, 0);
- #endif
+-  if (lin_lwp_attach_lwp (BUILD_LWP (ti_p->ti_lid, GET_PID (ptid)), 0) < 0)
++  if (lin_lwp_attach_lwp (new_ptid, 0) < 0)
+     return;
+ 
+   /* Add the thread to GDB's thread list.  */
+@@ -712,6 +716,11 @@ attach_thread (ptid_t ptid, const td_thr
+   if (verbose)
+     printf_unfiltered (_("[New %s]\n"), target_pid_to_str (ptid));
  
 +  /* Notify any observers of a new linux thread.  This
 +     would include any linux platforms that have to insert hardware
@@ -668,8 +675,8 @@
    /* Enable thread event reporting for this thread.  */
    err = td_thr_event_enable_p (th_p, 1);
    if (err != TD_OK)
-@@ -946,7 +955,8 @@ thread_db_wait (ptid_t ptid, struct targ
-     return pid_to_ptid (-1);
+@@ -891,7 +900,8 @@ thread_db_wait (ptid_t ptid, struct targ
+     thread_db_find_new_threads ();
  
    if (ourstatus->kind == TARGET_WAITKIND_STOPPED
 -      && ourstatus->value.sig == TARGET_SIGNAL_TRAP)
@@ -678,11 +685,11 @@
      /* Check for a thread event.  */
      check_event (ptid);
  
-Index: gdb-6.5/gdb/i386-linux-nat.c
+Index: gdb-6.7/gdb/i386-linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/i386-linux-nat.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/i386-linux-nat.c	2006-07-11 15:00:09.000000000 -0300
-@@ -619,10 +619,9 @@ i386_linux_dr_get (int regnum)
+--- gdb-6.7.orig/gdb/i386-linux-nat.c	2007-08-23 20:08:34.000000000 +0200
++++ gdb-6.7/gdb/i386-linux-nat.c	2007-10-13 04:50:11.000000000 +0200
+@@ -585,10 +585,9 @@ i386_linux_dr_get (int regnum)
    int tid;
    unsigned long value;
  
@@ -696,7 +703,7 @@
  
    /* FIXME: kettenis/2001-03-27: Calling perror_with_name if the
       ptrace call fails breaks debugging remote targets.  The correct
-@@ -647,10 +646,9 @@ i386_linux_dr_set (int regnum, unsigned 
+@@ -613,10 +612,9 @@ i386_linux_dr_set (int regnum, unsigned 
  {
    int tid;
  
@@ -710,11 +717,11 @@
  
    errno = 0;
    ptrace (PTRACE_POKEUSER, tid,
-Index: gdb-6.5/gdb/ia64-linux-nat.c
+Index: gdb-6.7/gdb/ia64-linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/ia64-linux-nat.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/ia64-linux-nat.c	2006-07-11 15:00:00.000000000 -0300
-@@ -29,6 +29,7 @@
+--- gdb-6.7.orig/gdb/ia64-linux-nat.c	2007-08-23 20:08:35.000000000 +0200
++++ gdb-6.7/gdb/ia64-linux-nat.c	2007-10-13 05:07:58.000000000 +0200
+@@ -27,6 +27,7 @@
  #include "regcache.h"
  #include "ia64-tdep.h"
  #include "linux-nat.h"
@@ -722,25 +729,27 @@
  
  #include <signal.h>
  #include <sys/ptrace.h>
-@@ -561,8 +562,9 @@ is_power_of_2 (int val)
+@@ -550,10 +551,10 @@ is_power_of_2 (int val)
    return onecount <= 1;
  }
  
--int
--ia64_linux_insert_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rw)
 +/* Internal routine to insert one watchpoint for a specified thread.  */
-+static int
+ static int
+-ia64_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw)
 +ia64_linux_insert_one_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rw)
  {
+-  ptid_t ptid = inferior_ptid;
    int idx;
    long dbr_addr, dbr_mask;
-@@ -608,8 +610,38 @@ ia64_linux_insert_watchpoint (ptid_t pti
+   int max_watchpoints = 4;
+@@ -598,10 +599,39 @@ ia64_linux_insert_watchpoint (CORE_ADDR 
    return 0;
  }
  
 +/* Internal callback routine which can be used via iterate_over_lwps
 +   to insert a specific watchpoint from all active threads.  */
-+static int
+ static int
+-ia64_linux_remove_watchpoint (CORE_ADDR addr, int len, int type)
 +ia64_linux_insert_watchpoint_callback (struct lwp_info *lwp, void *data)
 +{
 +  struct linux_watchpoint *args = (struct linux_watchpoint *)data;
@@ -750,9 +759,8 @@
 +}
 +
 +/* Insert a watchpoint for all threads.  */
- int
--ia64_linux_remove_watchpoint (ptid_t ptid, CORE_ADDR addr, int len)
-+ia64_linux_insert_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rw)
++static int
++ia64_linux_insert_watchpoint (CORE_ADDR addr, int len, int rw)
 +{
 +  struct linux_watchpoint args;
 +
@@ -770,11 +778,13 @@
 +
 +/* Internal routine to remove one watchpoint for a specified thread.  */
 +static int
-+ia64_linux_remove_one_watchpoint (ptid_t ptid, CORE_ADDR addr, int len)
++ia64_linux_remove_one_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int type)
  {
+-  ptid_t ptid = inferior_ptid;
    int idx;
    long dbr_addr, dbr_mask;
-@@ -632,23 +664,74 @@ ia64_linux_remove_watchpoint (ptid_t pti
+   int max_watchpoints = 4;
+@@ -623,13 +653,55 @@ ia64_linux_remove_watchpoint (CORE_ADDR 
    return -1;
  }
  
@@ -790,8 +800,8 @@
 +}
 +
 +/* Remove a watchpoint for all threads.  */
-+int
-+ia64_linux_remove_watchpoint (ptid_t ptid, CORE_ADDR addr, int len)
++static int
++ia64_linux_remove_watchpoint (CORE_ADDR addr, int len)
 +{
 +  struct linux_watchpoint args;
 +
@@ -818,8 +828,8 @@
 +  return 0;
 +}
 +
- int
- ia64_linux_stopped_data_address (CORE_ADDR *addr_p)
+ static int
+ ia64_linux_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
  {
    CORE_ADDR psr;
    int tid;
@@ -827,9 +837,10 @@
 +  struct siginfo *siginfo_p;
    ptid_t ptid = inferior_ptid;
 +  struct lwp_info *lp;
+   struct regcache *regcache = get_current_regcache ();
  
    tid = TIDGET(ptid);
-   if (tid == 0)
+@@ -637,10 +709,19 @@ ia64_linux_stopped_data_address (struct 
      tid = PIDGET (ptid);
    
    errno = 0;
@@ -851,17 +862,17 @@
 +      (siginfo_p->si_code & 0xffff) != 0x0004 /* TRAP_HWBKPT */)
      return 0;
  
-   psr = read_register_pid (IA64_PSR_REGNUM, ptid);
-@@ -656,7 +739,7 @@ ia64_linux_stopped_data_address (CORE_AD
+   regcache_cooked_read_unsigned (regcache, IA64_PSR_REGNUM, &psr);
+@@ -648,7 +729,7 @@ ia64_linux_stopped_data_address (struct 
                             for the next instruction */
-   write_register_pid (IA64_PSR_REGNUM, psr, ptid);
+   regcache_cooked_write_unsigned (regcache, IA64_PSR_REGNUM, psr);
  
 -  *addr_p = (CORE_ADDR)siginfo.si_addr;
 +  *addr_p = (CORE_ADDR)siginfo_p->si_addr;
    return 1;
  }
  
-@@ -685,6 +768,31 @@ ia64_linux_xfer_partial (struct target_o
+@@ -796,6 +877,31 @@ ia64_linux_xfer_partial (struct target_o
  			     offset, len);
  }
  
@@ -893,7 +904,7 @@
  void _initialize_ia64_linux_nat (void);
  
  void
-@@ -701,4 +809,7 @@ _initialize_ia64_linux_nat (void)
+@@ -834,4 +940,7 @@ _initialize_ia64_linux_nat (void)
  
    /* Register the target.  */
    linux_nat_add_target (t);
@@ -901,11 +912,11 @@
 +  observer_attach_linux_new_thread (ia64_linux_new_thread);
 +  observer_attach_sigtrap (ia64_linux_save_sigtrap_info);
  }
-Index: gdb-6.5/gdb/amd64-linux-nat.c
+Index: gdb-6.7/gdb/amd64-linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/amd64-linux-nat.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/amd64-linux-nat.c	2006-07-11 15:00:09.000000000 -0300
-@@ -234,10 +234,9 @@ amd64_linux_dr_get (int regnum)
+--- gdb-6.7.orig/gdb/amd64-linux-nat.c	2007-08-23 20:08:26.000000000 +0200
++++ gdb-6.7/gdb/amd64-linux-nat.c	2007-10-13 04:50:11.000000000 +0200
+@@ -240,10 +240,9 @@ amd64_linux_dr_get (int regnum)
    int tid;
    unsigned long value;
  
@@ -919,7 +930,7 @@
  
    /* FIXME: kettenis/2001-03-27: Calling perror_with_name if the
       ptrace call fails breaks debugging remote targets.  The correct
-@@ -262,10 +261,9 @@ amd64_linux_dr_set (int regnum, unsigned
+@@ -268,10 +267,9 @@ amd64_linux_dr_set (int regnum, unsigned
  {
    int tid;
  
@@ -933,11 +944,11 @@
  
    errno = 0;
    ptrace (PT_WRITE_U, tid, offsetof (struct user, u_debugreg[regnum]), value);
-Index: gdb-6.5/gdb/s390-nat.c
+Index: gdb-6.7/gdb/s390-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/s390-nat.c	2006-07-11 12:30:23.000000000 -0300
-+++ gdb-6.5/gdb/s390-nat.c	2006-07-11 15:00:26.000000000 -0300
-@@ -30,6 +30,7 @@
+--- gdb-6.7.orig/gdb/s390-nat.c	2007-08-23 20:08:37.000000000 +0200
++++ gdb-6.7/gdb/s390-nat.c	2007-10-13 04:50:11.000000000 +0200
+@@ -27,6 +27,7 @@
  #include "linux-nat.h"
  
  #include "s390-tdep.h"
@@ -945,8 +956,8 @@
  
  #include <asm/ptrace.h>
  #include <sys/ptrace.h>
-@@ -114,14 +115,14 @@ fill_fpregset (fpregset_t *regp, int reg
- 			      ((char *)regp) + regmap_fpregset[i]);
+@@ -111,14 +112,14 @@ fill_fpregset (const struct regcache *re
+ 			      (char *)regp + regmap_fpregset[i]);
  }
  
 -/* Find the TID for the current inferior thread to use with ptrace.  */
@@ -964,25 +975,25 @@
  
    return tid;
  }
-@@ -205,7 +206,7 @@ store_fpregs (int tid, int regnum)
+@@ -202,7 +203,7 @@ store_fpregs (const struct regcache *reg
  static void
- s390_linux_fetch_inferior_registers (int regnum)
+ s390_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
  {
 -  int tid = s390_inferior_tid ();
 +  int tid = s390_tid (inferior_ptid);
  
    if (regnum == -1 
        || (regnum < S390_NUM_REGS && regmap_gregset[regnum] != -1))
-@@ -221,7 +222,7 @@ s390_linux_fetch_inferior_registers (int
+@@ -218,7 +219,7 @@ s390_linux_fetch_inferior_registers (str
  static void
- s390_linux_store_inferior_registers (int regnum)
+ s390_linux_store_inferior_registers (struct regcache *regcache, int regnum)
  {
 -  int tid = s390_inferior_tid ();
 +  int tid = s390_tid (inferior_ptid);
  
    if (regnum == -1 
        || (regnum < S390_NUM_REGS && regmap_gregset[regnum] != -1))
-@@ -263,7 +264,7 @@ s390_stopped_by_watchpoint (void)
+@@ -260,7 +261,7 @@ s390_stopped_by_watchpoint (void)
    parea.len = sizeof (per_lowcore);
    parea.process_addr = (addr_t) & per_lowcore;
    parea.kernel_addr = offsetof (struct user_regs_struct, per_info.lowcore);
@@ -991,7 +1002,7 @@
      perror_with_name (_("Couldn't retrieve watchpoint status"));
  
    return per_lowcore.perc_storage_alteration == 1
-@@ -271,9 +272,9 @@ s390_stopped_by_watchpoint (void)
+@@ -268,9 +269,9 @@ s390_stopped_by_watchpoint (void)
  }
  
  static void
@@ -1003,7 +1014,7 @@
  
    per_struct per_info;
    ptrace_area parea;
-@@ -310,6 +311,16 @@ s390_fix_watch_points (void)
+@@ -307,6 +308,16 @@ s390_fix_watch_points (void)
      perror_with_name (_("Couldn't modify watchpoint status"));
  }
  
@@ -1020,7 +1031,7 @@
  static int
  s390_insert_watchpoint (CORE_ADDR addr, int len, int type)
  {
-@@ -323,10 +334,24 @@ s390_insert_watchpoint (CORE_ADDR addr, 
+@@ -320,10 +331,24 @@ s390_insert_watchpoint (CORE_ADDR addr, 
    area->next = watch_base;
    watch_base = area;
  
@@ -1046,7 +1057,7 @@
  static int
  s390_remove_watchpoint (CORE_ADDR addr, int len, int type)
  {
-@@ -348,7 +373,11 @@ s390_remove_watchpoint (CORE_ADDR addr, 
+@@ -345,7 +370,11 @@ s390_remove_watchpoint (CORE_ADDR addr, 
    *parea = area->next;
    xfree (area);
  
@@ -1059,7 +1070,7 @@
    return 0;
  }
  
-@@ -364,6 +393,15 @@ s390_region_ok_for_hw_watchpoint (CORE_A
+@@ -361,6 +390,15 @@ s390_region_ok_for_hw_watchpoint (CORE_A
    return 1;
  }
  
@@ -1075,7 +1086,7 @@
  
  void _initialize_s390_nat (void);
  
-@@ -389,4 +427,6 @@ _initialize_s390_nat (void)
+@@ -386,4 +424,6 @@ _initialize_s390_nat (void)
  
    /* Register the target.  */
    linux_nat_add_target (t);

gdb-6.3-threaded-watchpoints2-20050225.patch:

Index: gdb-6.3-threaded-watchpoints2-20050225.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-threaded-watchpoints2-20050225.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- gdb-6.3-threaded-watchpoints2-20050225.patch	12 Jul 2006 07:04:22 -0000	1.4
+++ gdb-6.3-threaded-watchpoints2-20050225.patch	1 Nov 2007 20:24:20 -0000	1.5
@@ -35,11 +35,15 @@
 	* testsuite/gdb.threads/watchthreads2.c: New test case.
 	* testsuite/gdb.threads/watchthreads2.exp: Ditto.
 
-Index: gdb-6.5/gdb/config/i386/nm-linux64.h
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/config/i386/nm-linux64.h
 ===================================================================
---- gdb-6.5.orig/gdb/config/i386/nm-linux64.h	2006-07-12 01:54:10.000000000 -0300
-+++ gdb-6.5/gdb/config/i386/nm-linux64.h	2006-07-12 01:54:29.000000000 -0300
-@@ -35,22 +35,59 @@
+--- gdb-6.7.orig/gdb/config/i386/nm-linux64.h	2007-08-23 20:08:48.000000000 +0200
++++ gdb-6.7/gdb/config/i386/nm-linux64.h	2007-10-14 23:41:50.000000000 +0200
+@@ -33,20 +33,58 @@
  
  /* Provide access to the i386 hardware debugging registers.  */
  
@@ -66,7 +70,7 @@
  #define I386_DR_LOW_GET_STATUS() \
 -  amd64_linux_dr_get_status ()
 +  amd64_linux_dr_get_status (inferior_ptid)
- 
++
 +/* Watchpoints and hardware breakpoints.  */
 +
 +/* Insert a watchpoint to watch a memory region which starts at
@@ -105,14 +109,13 @@
 +#define target_remove_hw_breakpoint(bp_tgt) \
 +  amd64_linux_remove_hw_breakpoint (bp_tgt)
  
- /* Override copies of {fetch,store}_inferior_registers in `infptrace.c'.  */
- #define FETCH_INFERIOR_REGISTERS
-Index: gdb-6.5/gdb/config/i386/nm-linux.h
+ #endif /* nm-linux64.h */
+Index: gdb-6.7/gdb/config/i386/nm-linux.h
 ===================================================================
---- gdb-6.5.orig/gdb/config/i386/nm-linux.h	2006-07-12 01:54:10.000000000 -0300
-+++ gdb-6.5/gdb/config/i386/nm-linux.h	2006-07-12 01:54:29.000000000 -0300
-@@ -46,23 +46,61 @@ extern CORE_ADDR register_u_addr (CORE_A
- 
+--- gdb-6.7.orig/gdb/config/i386/nm-linux.h	2007-08-23 20:08:48.000000000 +0200
++++ gdb-6.7/gdb/config/i386/nm-linux.h	2007-10-14 23:40:55.000000000 +0200
+@@ -29,21 +29,60 @@
+ 
  /* Provide access to the i386 hardware debugging registers.  */
  
 -extern void i386_linux_dr_set_control (unsigned long control);
@@ -138,8 +141,7 @@
  #define I386_DR_LOW_GET_STATUS() \
 -  i386_linux_dr_get_status ()
 +  i386_linux_dr_get_status (inferior_ptid)
- 
- 
++
 +/* Watchpoints and hardware breakpoints.  */
 +
 +/* Insert a watchpoint to watch a memory region which starts at
@@ -178,14 +180,14 @@
 +#define target_remove_hw_breakpoint(bp_tgt) \
 +  i386_linux_remove_hw_breakpoint (bp_tgt)
 +
- /* Override copies of {fetch,store}_inferior_registers in `infptrace.c'.  */
- #define FETCH_INFERIOR_REGISTERS
+ 
  
-Index: gdb-6.5/gdb/i386-nat.c
+ #ifdef HAVE_PTRACE_GETFPXREGS
+Index: gdb-6.7/gdb/i386-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/i386-nat.c	2006-07-12 01:54:10.000000000 -0300
-+++ gdb-6.5/gdb/i386-nat.c	2006-07-12 01:54:29.000000000 -0300
-@@ -21,6 +21,7 @@
+--- gdb-6.7.orig/gdb/i386-nat.c	2007-08-23 20:08:34.000000000 +0200
++++ gdb-6.7/gdb/i386-nat.c	2007-10-14 23:39:04.000000000 +0200
+@@ -19,6 +19,7 @@
  
  #include "defs.h"
  #include "breakpoint.h"
@@ -193,10 +195,10 @@
  #include "command.h"
  #include "gdbcmd.h"
  
-Index: gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.c
+Index: gdb-6.7/gdb/testsuite/gdb.threads/watchthreads2.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.c	2006-07-12 01:54:29.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.threads/watchthreads2.c	2007-10-14 23:39:04.000000000 +0200
 @@ -0,0 +1,66 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -264,10 +266,10 @@
 +    pthread_exit(NULL);
 +}
 +
-Index: gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.exp
+Index: gdb-6.7/gdb/testsuite/gdb.threads/watchthreads2.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads2.exp	2006-07-12 01:54:29.000000000 -0300
++++ gdb-6.7/gdb/testsuite/gdb.threads/watchthreads2.exp	2007-10-14 23:39:04.000000000 +0200
 @@ -0,0 +1,133 @@
 +# This testcase is part of GDB, the GNU debugger.
 +
@@ -402,11 +404,11 @@
 +} else {
 +  fail $message 
 +}
-Index: gdb-6.5/gdb/i386-linux-nat.c
+Index: gdb-6.7/gdb/i386-linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/i386-linux-nat.c	2006-07-12 01:54:28.000000000 -0300
-+++ gdb-6.5/gdb/i386-linux-nat.c	2006-07-12 01:57:19.000000000 -0300
-@@ -24,6 +24,7 @@
+--- gdb-6.7.orig/gdb/i386-linux-nat.c	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/i386-linux-nat.c	2007-10-14 23:39:04.000000000 +0200
+@@ -22,6 +22,7 @@
  #include "inferior.h"
  #include "gdbcore.h"
  #include "regcache.h"
@@ -414,7 +416,7 @@
  #include "target.h"
  #include "linux-nat.h"
  
-@@ -614,14 +615,14 @@ i386_linux_store_inferior_registers (int
+@@ -580,14 +581,14 @@ i386_linux_store_inferior_registers (str
  /* Support for debug registers.  */
  
  static unsigned long
@@ -432,7 +434,7 @@
  
    /* FIXME: kettenis/2001-03-27: Calling perror_with_name if the
       ptrace call fails breaks debugging remote targets.  The correct
-@@ -642,13 +643,13 @@ i386_linux_dr_get (int regnum)
+@@ -608,13 +609,13 @@ i386_linux_dr_get (int regnum)
  }
  
  static void
@@ -449,7 +451,7 @@
  
    errno = 0;
    ptrace (PTRACE_POKEUSER, tid,
-@@ -658,34 +659,158 @@ i386_linux_dr_set (int regnum, unsigned 
+@@ -624,34 +625,158 @@ i386_linux_dr_set (int regnum, unsigned 
  }
  
  void
@@ -616,26 +618,26 @@
  /* Called by libthread_db.  Returns a pointer to the thread local
     storage (or its descriptor).  */
  
-@@ -843,4 +968,6 @@ _initialize_i386_linux_nat (void)
+@@ -816,4 +941,6 @@ _initialize_i386_linux_nat (void)
  
    /* Register the target.  */
    linux_nat_add_target (t);
 +
 +  observer_attach_linux_new_thread (i386_linux_new_thread);
  }
-Index: gdb-6.5/gdb/amd64-linux-nat.c
+Index: gdb-6.7/gdb/amd64-linux-nat.c
 ===================================================================
---- gdb-6.5.orig/gdb/amd64-linux-nat.c	2006-07-12 01:54:28.000000000 -0300
-+++ gdb-6.5/gdb/amd64-linux-nat.c	2006-07-12 01:54:29.000000000 -0300
-@@ -25,6 +25,7 @@
+--- gdb-6.7.orig/gdb/amd64-linux-nat.c	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/amd64-linux-nat.c	2007-10-14 23:39:04.000000000 +0200
+@@ -23,6 +23,7 @@
  #include "inferior.h"
  #include "gdbcore.h"
  #include "regcache.h"
 +#include "observer.h"
  #include "linux-nat.h"
+ #include "amd64-linux-tdep.h"
  
- #include "gdb_assert.h"
-@@ -229,14 +230,14 @@ amd64_linux_store_inferior_registers (in
+@@ -235,14 +236,14 @@ amd64_linux_store_inferior_registers (st
  
  
  static unsigned long
@@ -653,7 +655,7 @@
  
    /* FIXME: kettenis/2001-03-27: Calling perror_with_name if the
       ptrace call fails breaks debugging remote targets.  The correct
-@@ -257,13 +258,13 @@ amd64_linux_dr_get (int regnum)
+@@ -263,13 +264,13 @@ amd64_linux_dr_get (int regnum)
  }
  
  static void
@@ -670,7 +672,7 @@
  
    errno = 0;
    ptrace (PT_WRITE_U, tid, offsetof (struct user, u_debugreg[regnum]), value);
-@@ -272,34 +273,158 @@ amd64_linux_dr_set (int regnum, unsigned
+@@ -278,34 +279,158 @@ amd64_linux_dr_set (int regnum, unsigned
  }
  
  void
@@ -837,18 +839,18 @@
  /* This function is called by libthread_db as part of its handling of
     a request for a thread's local storage address.  */
  
-@@ -399,4 +524,6 @@ _initialize_amd64_linux_nat (void)
+@@ -406,4 +531,6 @@ _initialize_amd64_linux_nat (void)
  
    /* Register the target.  */
    linux_nat_add_target (t);
 +
 +  observer_attach_linux_new_thread (amd64_linux_new_thread);
  }
-Index: gdb-6.5/gdb/testsuite/gdb.threads/watchthreads.c
+Index: gdb-6.7/gdb/testsuite/gdb.threads/watchthreads.c
 ===================================================================
---- gdb-6.5.orig/gdb/testsuite/gdb.threads/watchthreads.c	2006-07-12 01:55:19.000000000 -0300
-+++ gdb-6.5/gdb/testsuite/gdb.threads/watchthreads.c	2006-07-12 01:56:51.000000000 -0300
-@@ -58,7 +58,7 @@ void *thread_function(void *arg) {
+--- gdb-6.7.orig/gdb/testsuite/gdb.threads/watchthreads.c	2007-08-23 20:08:50.000000000 +0200
++++ gdb-6.7/gdb/testsuite/gdb.threads/watchthreads.c	2007-10-14 23:39:04.000000000 +0200
+@@ -56,7 +56,7 @@ void *thread_function(void *arg) {
      /* Don't run forever.  Run just short of it :)  */
      while (*myp > 0)
        {

gdb-6.3-warnings-20050317.patch:

Index: gdb-6.3-warnings-20050317.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.3-warnings-20050317.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- gdb-6.3-warnings-20050317.patch	8 Aug 2007 22:02:39 -0000	1.6
+++ gdb-6.3-warnings-20050317.patch	1 Nov 2007 20:24:20 -0000	1.7
@@ -1,194 +1,38 @@
-Index: gdb-6.6/gdb/mi/mi-cmd-env.c
-===================================================================
---- 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[] =
-   {
-     {"r", RESET_OPT, 0},
--    0
-+    {0}
-   };
- 
-   dont_repeat ();
-@@ -198,7 +198,7 @@ mi_cmd_env_dir (char *command, char **ar
-   static struct mi_opt opts[] =
-   {
-     {"r", RESET_OPT, 0},
--    0
-+    {0}
-   };
- 
-   dont_repeat ();
-Index: gdb-6.6/gdb/mi/mi-getopt.c
-===================================================================
---- 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[] =
-   {
--    0
-+    {0}
-   };
- 
-   if (mi_getopt (prefix, argc, argv, opts, &optind, &optarg) == -1)
-Index: gdb-6.6/gdb/mi/mi-cmd-break.c
-===================================================================
---- 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},
-     {"p", THREAD_OPT, 1},
--    0
-+    {0}
-   };
- 
-   /* Parse arguments. It could be -r or -h or -t, <location> or ``--''
-@@ -196,7 +196,7 @@ mi_cmd_break_watch (char *command, char 
-   {
-     {"r", READ_OPT, 0},
-     {"a", ACCESS_OPT, 0},
--    0
-+    {0}
-   };
- 
-   /* Parse arguments. */
-Index: gdb-6.6/gdb/mi/mi-cmd-disas.c
-===================================================================
---- 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},
-     {"e", END_OPT, 1},
--    0
-+    {0}
-   };
- 
-   /* Get the options with their arguments. Keep track of what we
-Index: gdb-6.6/gdb/mi/mi-main.c
-===================================================================
---- 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[] =
-   {
-     {"o", OFFSET_OPT, 1},
--    0
-+    {0}
-   };
- 
-   while (1)
-@@ -973,7 +973,7 @@ mi_cmd_data_write_memory (char *command,
-   static struct mi_opt opts[] =
-   {
-     {"o", OFFSET_OPT, 1},
--    0
-+    {0}
-   };
- 
-   while (1)
-Index: gdb-6.6/gdb/p-valprint.c
-===================================================================
---- 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)
- {
-   int i, len, n_baseclasses;
--  struct obstack tmp_obstack;
-+  struct obstack tmp_obstack = {0};
-   char *last_dont_print = obstack_next_free (&dont_print_statmem_obstack);
- 
-   CHECK_TYPEDEF (type);
-@@ -922,7 +922,7 @@ pascal_object_print_value (struct type *
- 			   enum val_prettyprint pretty,
- 			   struct type **dont_print_vb)
- {
--  struct obstack tmp_obstack;
-+  struct obstack tmp_obstack = {0};
-   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.6/gdb/cp-valprint.c
-===================================================================
---- 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)
- {
-   int i, len, n_baseclasses;
--  struct obstack tmp_obstack;
-+  struct obstack tmp_obstack = {0};
-   char *last_dont_print = obstack_next_free (&dont_print_statmem_obstack);
-   int fields_seen = 0;
- 
-@@ -524,7 +524,7 @@ cp_print_value (struct type *type, struc
- 		struct ui_file *stream, int format, int recurse,
- 		enum val_prettyprint pretty, struct type **dont_print_vb)
- {
--  struct obstack tmp_obstack;
-+  struct obstack tmp_obstack = {0};
-   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.6/gdb/tui/tui-layout.c
-===================================================================
---- 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)
- 	    {
- 	      make_disasm_window (&TUI_DISASM_WIN, asm_height, src_height - 1);
--	      init_and_make_win ((void **) & locator,
-+	      init_and_make_win ((void **)(char *) & locator,
- 			       LOCATOR_WIN,
- 			       2 /* 1 */ ,
- 			       tui_term_width (),
-@@ -848,7 +848,7 @@ show_data (enum tui_layout_type new_layo
- 	make_source_window (&tui_win_list[win_type], src_height, data_height - 1);
-       else
- 	make_disasm_window (&tui_win_list[win_type], src_height, data_height - 1);
--      init_and_make_win ((void **) & locator,
-+      init_and_make_win ((void **)(char *) & locator,
- 		       LOCATOR_WIN,
- 		       2 /* 1 */ ,
- 		       tui_term_width (),
-@@ -963,7 +963,7 @@ make_source_or_disasm_window (struct tui
-     execution_info = tui_source_exec_info_win_ptr ();
-   else
-     execution_info = tui_disassem_exec_info_win_ptr ();
--  init_and_make_win ((void **) & execution_info,
-+  init_and_make_win ((void **)(char *) & execution_info,
- 		   EXEC_INFO_WIN,
- 		   height,
- 		   3,
-@@ -1013,7 +1013,7 @@ show_source_or_disasm_and_command (enum 
- 	    make_source_window (win_info_ptr, src_height - 1, 0);
- 	  else
- 	    make_disasm_window (win_info_ptr, src_height - 1, 0);
--	  init_and_make_win ((void **) & locator,
-+	  init_and_make_win ((void **)(char *) & locator,
- 			   LOCATOR_WIN,
- 			   2 /* 1 */ ,
- 			   tui_term_width (),
-Index: gdb-6.6/gdb/testsuite/gdb.base/move-dir.h
+[base]
+
+2007-10-14  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/mi/mi-cmd-env.c
+===================================================================
+--- gdb-6.7.orig/gdb/mi/mi-cmd-env.c	2007-10-14 23:42:39.000000000 +0200
++++ gdb-6.7/gdb/mi/mi-cmd-env.c	2007-10-14 23:42:39.000000000 +0200
+@@ -78,7 +78,8 @@ mi_cmd_env_pwd (char *command, char **ar
+      
+   /* Otherwise the mi level is 2 or higher.  */
+ 
+-  getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
++  /* Unused result.  */
++  1 && getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
+   ui_out_field_string (uiout, "cwd", gdb_dirbuf);
+ 
+   return MI_CMD_DONE;
+Index: gdb-6.7/gdb/testsuite/gdb.base/move-dir.h
 ===================================================================
---- gdb-6.6.orig/gdb/testsuite/gdb.base/move-dir.h
-+++ gdb-6.6/gdb/testsuite/gdb.base/move-dir.h
+--- gdb-6.7.orig/gdb/testsuite/gdb.base/move-dir.h	2007-10-14 23:31:22.000000000 +0200
++++ gdb-6.7/gdb/testsuite/gdb.base/move-dir.h	2007-10-14 23:42:39.000000000 +0200
 @@ -1,4 +1,4 @@
 -#include <stdlib.h>
 +#include <stdio.h>
  
  void other() {
    const char* ostring = "other";
-Index: gdb-6.6/gdb/testsuite/gdb.base/sigrepeat.c
+Index: gdb-6.7/gdb/testsuite/gdb.base/sigrepeat.c
 ===================================================================
---- gdb-6.6.orig/gdb/testsuite/gdb.base/sigrepeat.c
-+++ gdb-6.6/gdb/testsuite/gdb.base/sigrepeat.c
-@@ -22,6 +22,7 @@
+--- gdb-6.7.orig/gdb/testsuite/gdb.base/sigrepeat.c	2007-08-23 20:08:49.000000000 +0200
++++ gdb-6.7/gdb/testsuite/gdb.base/sigrepeat.c	2007-10-14 23:42:39.000000000 +0200
+@@ -21,6 +21,7 @@
  #include <stdlib.h>
  #include <string.h>
  #include <signal.h>
@@ -196,11 +40,11 @@
  #include <sys/time.h>
  
  static volatile int done[2];
-Index: gdb-6.6/gdb/s390-tdep.c
+Index: gdb-6.7/gdb/s390-tdep.c
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/s390-tdep.c	2007-10-02 21:26:42.000000000 +0200
++++ gdb-6.7/gdb/s390-tdep.c	2007-10-14 23:42:39.000000000 +0200
+@@ -2214,6 +2214,9 @@ s390_return_value (struct gdbarch *gdbar
  	case RETURN_VALUE_STRUCT_CONVENTION:
  	  error (_("Cannot set function return value."));
  	  break;
@@ -210,7 +54,7 @@
  	}
      }
    else if (out)
-@@ -2309,6 +2312,9 @@ s390_return_value (struct gdbarch *gdbar
+@@ -2246,6 +2249,9 @@ s390_return_value (struct gdbarch *gdbar
  	case RETURN_VALUE_STRUCT_CONVENTION:
  	  error (_("Function return value unknown."));
  	  break;
@@ -220,27 +64,10 @@
  	}
      }
  
-Index: gdb-6.6/gdb/remote.c
+Index: gdb-6.7/gdb/f-exp.y
 ===================================================================
---- 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 **) (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 **) (char *)
- 				 &sigint_remote_token);
- }
- 
-Index: gdb-6.6/gdb/f-exp.y
-===================================================================
---- gdb-6.6.orig/gdb/f-exp.y
-+++ gdb-6.6/gdb/f-exp.y
+--- gdb-6.7.orig/gdb/f-exp.y	2007-06-12 17:33:03.000000000 +0200
++++ gdb-6.7/gdb/f-exp.y	2007-10-14 23:42:39.000000000 +0200
 @@ -567,6 +567,8 @@ ptype	:	typebase
  		      case tp_function:
  			follow_type = lookup_function_type (follow_type);
@@ -250,48 +77,11 @@
  		      }
  		  $$ = follow_type;
  		}
-Index: gdb-6.6/gdb/remote-fileio.c
+Index: gdb-6.7/gdb/source.c
 ===================================================================
---- 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[] = {
--  "open", remote_fileio_func_open,
--  "close", remote_fileio_func_close,
--  "read", remote_fileio_func_read,
--  "write", remote_fileio_func_write,
--  "lseek", remote_fileio_func_lseek,
--  "rename", remote_fileio_func_rename,
--  "unlink", remote_fileio_func_unlink,
--  "stat", remote_fileio_func_stat,
--  "fstat", remote_fileio_func_fstat,
--  "gettimeofday", remote_fileio_func_gettimeofday,
--  "isatty", remote_fileio_func_isatty,
--  "system", remote_fileio_func_system,
--  NULL, NULL
-+	{"open", remote_fileio_func_open},
-+	{"close", remote_fileio_func_close},
-+	{"read", remote_fileio_func_read},
-+	{"write", remote_fileio_func_write},
-+	{"lseek", remote_fileio_func_lseek},
-+	{"rename", remote_fileio_func_rename},
-+	{"unlink", remote_fileio_func_unlink},
-+	{"stat", remote_fileio_func_stat},
-+	{"fstat", remote_fileio_func_fstat},
-+	{"gettimeofday", remote_fileio_func_gettimeofday},
-+	{"isatty", remote_fileio_func_isatty},
-+	{"system", remote_fileio_func_system},
-+	{NULL, NULL}
- };
- 
- static int
-Index: gdb-6.6/gdb/source.c
-===================================================================
---- gdb-6.6.orig/gdb/source.c
-+++ gdb-6.6/gdb/source.c
-@@ -172,7 +172,7 @@ get_current_source_symtab_and_line (void
+--- gdb-6.7.orig/gdb/source.c	2007-08-23 20:08:38.000000000 +0200
++++ gdb-6.7/gdb/source.c	2007-10-14 23:42:39.000000000 +0200
+@@ -170,7 +170,7 @@ get_current_source_symtab_and_line (void
  void
  set_default_source_symtab_and_line (void)
  {
@@ -300,7 +90,7 @@
  
    if (!have_full_symbols () && !have_partial_symbols ())
      error (_("No symbol table is loaded.  Use the \"file\" command."));
-@@ -1428,7 +1428,7 @@ static void
+@@ -1439,7 +1439,7 @@ static void
  line_info (char *arg, int from_tty)
  {
    struct symtabs_and_lines sals;
@@ -309,92 +99,24 @@
    CORE_ADDR start_pc, end_pc;
    int i;
  
-Index: gdb-6.6/gdb/symfile.c
-===================================================================
---- 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. */
-+    default:
-+      break;
-     }
- 
-   /* val and coreaddr are mutually exclusive, one of them *will* be zero */
-Index: gdb-6.6/gdb/linespec.c
+Index: gdb-6.7/gdb/linespec.c
 ===================================================================
---- gdb-6.6.orig/gdb/linespec.c
-+++ gdb-6.6/gdb/linespec.c
-@@ -1631,7 +1631,7 @@ static struct symtabs_and_lines
+--- gdb-6.7.orig/gdb/linespec.c	2007-10-14 23:31:03.000000000 +0200
++++ gdb-6.7/gdb/linespec.c	2007-10-14 23:53:57.000000000 +0200
+@@ -1654,7 +1654,7 @@ static struct symtabs_and_lines
  find_method (int funfirstline, char ***canonical, char *saved_arg,
  	     char *copy, struct type *t, struct symbol *sym_class)
  {
 -  struct symtabs_and_lines values;
-+  struct symtabs_and_lines values = {0};
-   struct symbol *sym = 0;
++  struct symtabs_and_lines values = { NULL }; 
+   struct symbol *sym = NULL;
    int i1;	/*  Counter for the symbol array.  */
    struct symbol **sym_arr =  alloca (total_number_of_methods (t)
-Index: gdb-6.6/gdb/macroscope.c
-===================================================================
---- 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)
- {
--  struct macro_source_file *main, *inclusion;
-+  struct macro_source_file *main_sf, *inclusion;
-   struct macro_scope *ms;
- 
-   if (! sal.symtab
-@@ -42,8 +42,8 @@ sal_macro_scope (struct symtab_and_line 
- 
-   ms = (struct macro_scope *) xmalloc (sizeof (*ms));
- 
--  main = macro_main (sal.symtab->macro_table);
--  inclusion = macro_lookup_inclusion (main, sal.symtab->filename);
-+  main_sf = macro_main (sal.symtab->macro_table);
-+  inclusion = macro_lookup_inclusion (main_sf, sal.symtab->filename);
- 
-   if (inclusion)
-     {
-@@ -66,7 +66,7 @@ sal_macro_scope (struct symtab_and_line 
- 
-          For the time being, though, we'll just treat these as
-          occurring at the end of the main source file.  */
--      ms->file = main;
-+      ms->file = main_sf;
-       ms->line = -1;
- 
-       complaint (&symfile_complaints,
-@@ -83,7 +83,6 @@ struct macro_scope *
- default_macro_scope (void)
- {
-   struct symtab_and_line sal;
--  struct macro_source_file *main;
-   struct macro_scope *ms;
- 
-   /* If there's a selected frame, use its PC.  */ 
-Index: gdb-6.6/gdb/target.c
-===================================================================
---- 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:
-+      break;
-     }
- 
-   if (region->attrib.cache)
-Index: gdb-6.6/gdb/gdb-events.c
+Index: gdb-6.7/gdb/gdb-events.c
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/gdb-events.c	2007-08-23 20:08:31.000000000 +0200
++++ gdb-6.7/gdb/gdb-events.c	2007-10-14 23:42:39.000000000 +0200
+@@ -319,6 +319,8 @@ gdb_events_deliver (struct gdb_events *v
  	case architecture_changed:
  	  vector->architecture_changed ();
  	  break;
@@ -403,11 +125,11 @@
  	}
        delivering_events = event->next;
        xfree (event);
-Index: gdb-6.6/gdb/dwarf2read.c
+Index: gdb-6.7/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.6.orig/gdb/dwarf2read.c
-+++ gdb-6.6/gdb/dwarf2read.c
-@@ -9307,6 +9307,7 @@ dwarf_decode_macros (struct line_header 
+--- gdb-6.7.orig/gdb/dwarf2read.c	2007-10-14 23:31:22.000000000 +0200
++++ gdb-6.7/gdb/dwarf2read.c	2007-10-14 23:42:39.000000000 +0200
+@@ -9585,6 +9585,7 @@ dwarf_decode_macros (struct line_header 
    for (;;)
      {
        enum dwarf_macinfo_record_type macinfo_type;
@@ -415,7 +137,7 @@
  
        /* Do we at least have room for a macinfo type byte?  */
        if (mac_ptr >= mac_end)
-@@ -9318,13 +9319,16 @@ dwarf_decode_macros (struct line_header 
+@@ -9596,13 +9597,16 @@ dwarf_decode_macros (struct line_header 
        macinfo_type = read_1_byte (abfd, mac_ptr);
        mac_ptr++;
  
@@ -437,11 +159,11 @@
          case DW_MACINFO_define:
          case DW_MACINFO_undef:
            {
-Index: gdb-6.6/gdb/stabsread.c
+Index: gdb-6.7/gdb/stabsread.c
 ===================================================================
---- gdb-6.6.orig/gdb/stabsread.c
-+++ gdb-6.6/gdb/stabsread.c
-@@ -1794,7 +1794,8 @@ again:
+--- gdb-6.7.orig/gdb/stabsread.c	2007-10-09 00:44:32.000000000 +0200
++++ gdb-6.7/gdb/stabsread.c	2007-10-14 23:42:39.000000000 +0200
+@@ -1842,7 +1842,8 @@ again:
  	  struct type *domain = read_type (pp, objfile);
  	  struct type *return_type;
  	  struct field *args;
@@ -451,11 +173,11 @@
  
  	  if (**pp != ',')
  	    /* Invalid member type data format.  */
-Index: gdb-6.6/gdb/dwarf2expr.c
+Index: gdb-6.7/gdb/dwarf2expr.c
 ===================================================================
---- gdb-6.6.orig/gdb/dwarf2expr.c
-+++ gdb-6.6/gdb/dwarf2expr.c
-@@ -559,6 +559,8 @@ execute_stack_op (struct dwarf_expr_cont
+--- gdb-6.7.orig/gdb/dwarf2expr.c	2007-08-23 20:08:28.000000000 +0200
++++ gdb-6.7/gdb/dwarf2expr.c	2007-10-14 23:42:39.000000000 +0200
+@@ -594,6 +594,8 @@ execute_stack_op (struct dwarf_expr_cont
  	      op_ptr = read_uleb128 (op_ptr, op_end, &reg);
  	      result += reg;
  	      break;
@@ -464,24 +186,11 @@
  	    }
  	  break;
  
-Index: gdb-6.6/gdb/varobj.c
+Index: gdb-6.7/gdb/varobj.c
 ===================================================================
---- 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. */
- static struct language_specific
--  languages[vlang_end][sizeof (struct language_specific)] = {
-+  languages[vlang_end] = {
-   /* Unknown (try treating as C */
--  {
--   vlang_unknown,
-+  {vlang_unknown,
-    c_number_of_children,
-    c_name_of_variable,
-    c_name_of_child,
-@@ -339,8 +338,7 @@ static struct language_specific
+--- gdb-6.7.orig/gdb/varobj.c	2007-10-13 05:29:58.000000000 +0200
++++ gdb-6.7/gdb/varobj.c	2007-10-14 23:42:39.000000000 +0200
+@@ -347,8 +347,7 @@ static struct language_specific language
     c_value_of_variable}
    ,
    /* C */
@@ -491,7 +200,7 @@
     c_number_of_children,
     c_name_of_variable,
     c_name_of_child,
-@@ -351,8 +349,7 @@ static struct language_specific
+@@ -360,8 +359,7 @@ static struct language_specific language
     c_value_of_variable}
    ,
    /* C++ */
@@ -501,7 +210,7 @@
     cplus_number_of_children,
     cplus_name_of_variable,
     cplus_name_of_child,
-@@ -363,8 +360,7 @@ static struct language_specific
+@@ -373,8 +371,7 @@ static struct language_specific language
     cplus_value_of_variable}
    ,
    /* Java */
@@ -511,20 +220,11 @@
     java_number_of_children,
     java_name_of_variable,
     java_name_of_child,
-@@ -519,7 +515,7 @@ varobj_create (char *objname,
- 
-       /* Set language info */
-       lang = variable_language (var);
--      var->root->lang = languages[lang];
-+      var->root->lang = &languages[lang];
- 
-       /* Set ourselves as our root */
-       var->root->rootvar = var;
-Index: gdb-6.6/gdb/doublest.c
-===================================================================
---- 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
+Index: gdb-6.7/gdb/doublest.c
+===================================================================
+--- gdb-6.7.orig/gdb/doublest.c	2007-08-23 20:08:28.000000000 +0200
++++ gdb-6.7/gdb/doublest.c	2007-10-14 23:42:39.000000000 +0200
+@@ -92,15 +92,10 @@ get_field (const bfd_byte *data, enum fl
      {
        result |= (unsigned long)*(data + cur_byte) << cur_bitshift;
        cur_bitshift += FLOATFORMAT_CHAR_BIT;
@@ -544,10 +244,11 @@
      }
    if (len < sizeof(result) * FLOATFORMAT_CHAR_BIT)
      /* Mask out bits which are not part of the field */
-diff -u -rup gdb-6.6-orig/gdb/cli/cli-cmds.c gdb-6.6/gdb/cli/cli-cmds.c
---- gdb-6.6-orig/gdb/cli/cli-cmds.c	2007-04-08 20:49:09.000000000 +0200
-+++ gdb-6.6/gdb/cli/cli-cmds.c	2007-04-08 20:54:49.000000000 +0200
-@@ -323,7 +323,8 @@ pwd_command (char *args, int from_tty)
+Index: gdb-6.7/gdb/cli/cli-cmds.c
+===================================================================
+--- gdb-6.7.orig/gdb/cli/cli-cmds.c	2007-08-23 20:08:47.000000000 +0200
++++ gdb-6.7/gdb/cli/cli-cmds.c	2007-10-14 23:42:39.000000000 +0200
+@@ -320,7 +320,8 @@ pwd_command (char *args, int from_tty)
  {
    if (args)
      error (_("The \"pwd\" command does not take an argument: %s"), args);
@@ -557,10 +258,11 @@
  
    if (strcmp (gdb_dirbuf, current_directory) != 0)
      printf_unfiltered (_("Working directory %s\n (canonically %s).\n"),
-diff -u -rup gdb-6.6-orig/gdb/inflow.c gdb-6.6/gdb/inflow.c
---- gdb-6.6-orig/gdb/inflow.c	2006-02-10 23:01:43.000000000 +0100
-+++ gdb-6.6/gdb/inflow.c	2007-04-08 20:56:48.000000000 +0200
-@@ -549,17 +549,20 @@ new_tty (void)
+Index: gdb-6.7/gdb/inflow.c
+===================================================================
+--- gdb-6.7.orig/gdb/inflow.c	2007-08-23 20:08:35.000000000 +0200
++++ gdb-6.7/gdb/inflow.c	2007-10-14 23:42:39.000000000 +0200
+@@ -547,17 +547,20 @@ new_tty (void)
    if (tty != 0)
      {
        close (0);
@@ -584,12 +286,13 @@
      }
    if (tty > 2)
      close (tty);
-diff -u -rup gdb-6.6-orig/gdb/linux-nat.c gdb-6.6/gdb/linux-nat.c
---- gdb-6.6-orig/gdb/linux-nat.c	2007-04-08 20:49:11.000000000 +0200
-+++ gdb-6.6/gdb/linux-nat.c	2007-04-08 20:54:08.000000000 +0200
-@@ -2972,7 +2972,8 @@ linux_nat_info_proc_cmd (char *args, int
+Index: gdb-6.7/gdb/linux-nat.c
+===================================================================
+--- gdb-6.7.orig/gdb/linux-nat.c	2007-10-14 23:31:22.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.c	2007-10-14 23:42:39.000000000 +0200
+@@ -2895,7 +2895,8 @@ linux_nat_info_proc_cmd (char *args, int
        sprintf (fname1, "/proc/%lld/cmdline", pid);
-       if ((procfile = fopen (fname1, "r")) > 0)
+       if ((procfile = fopen (fname1, "r")) != NULL)
  	{
 -	  fgets (buffer, sizeof (buffer), procfile);
 +	  /* Unused result.  */
@@ -597,10 +300,11 @@
  	  printf_filtered ("cmdline = '%s'\n", buffer);
  	  fclose (procfile);
  	}
-diff -u -rup gdb-6.6-orig/gdb/main.c gdb-6.6/gdb/main.c
---- gdb-6.6-orig/gdb/main.c	2007-04-08 20:49:09.000000000 +0200
-+++ gdb-6.6/gdb/main.c	2007-04-08 20:55:30.000000000 +0200
-@@ -195,7 +195,8 @@ captured_main (void *data)
+Index: gdb-6.7/gdb/main.c
+===================================================================
+--- gdb-6.7.orig/gdb/main.c	2007-08-23 20:08:36.000000000 +0200
++++ gdb-6.7/gdb/main.c	2007-10-14 23:42:39.000000000 +0200
+@@ -193,7 +193,8 @@ captured_main (void *data)
    line[0] = '\0';		/* Terminate saved (now empty) cmd line */
    instream = stdin;
  
@@ -610,23 +314,11 @@
    current_directory = gdb_dirbuf;
  
    gdb_stdout = stdio_fileopen (stdout);
-diff -u -rup gdb-6.6-orig/gdb/mi/mi-cmd-env.c gdb-6.6/gdb/mi/mi-cmd-env.c
---- gdb-6.6-orig/gdb/mi/mi-cmd-env.c	2007-04-08 20:49:09.000000000 +0200
-+++ gdb-6.6/gdb/mi/mi-cmd-env.c	2007-04-08 20:55:11.000000000 +0200
-@@ -80,7 +80,8 @@ mi_cmd_env_pwd (char *command, char **ar
-      
-   /* Otherwise the mi level is 2 or higher.  */
- 
--  getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
-+  /* Unused result.  */
-+  1 && getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
-   ui_out_field_string (uiout, "cwd", gdb_dirbuf);
- 
-   return MI_CMD_DONE;
-diff -u -rup gdb-6.6-orig/gdb/top.c gdb-6.6/gdb/top.c
---- gdb-6.6-orig/gdb/top.c	2007-04-08 20:49:10.000000000 +0200
-+++ gdb-6.6/gdb/top.c	2007-04-08 20:55:46.000000000 +0200
-@@ -1643,7 +1643,8 @@ gdb_init (char *argv0)
+Index: gdb-6.7/gdb/top.c
+===================================================================
+--- gdb-6.7.orig/gdb/top.c	2007-10-14 23:38:27.000000000 +0200
++++ gdb-6.7/gdb/top.c	2007-10-14 23:42:39.000000000 +0200
+@@ -1636,7 +1636,8 @@ gdb_init (char *argv0)
  
    /* Run the init function of each source file */
  
@@ -636,10 +328,11 @@
    current_directory = gdb_dirbuf;
  
  #ifdef __MSDOS__
-diff -u -rup gdb-6.6-orig/gdb/ui-file.c gdb-6.6/gdb/ui-file.c
---- gdb-6.6-orig/gdb/ui-file.c	2005-12-17 23:34:03.000000000 +0100
-+++ gdb-6.6/gdb/ui-file.c	2007-04-08 20:56:21.000000000 +0200
-@@ -482,7 +482,8 @@ stdio_file_write (struct ui_file *file, 
+Index: gdb-6.7/gdb/ui-file.c
+===================================================================
+--- gdb-6.7.orig/gdb/ui-file.c	2007-08-23 20:08:46.000000000 +0200
++++ gdb-6.7/gdb/ui-file.c	2007-10-14 23:42:39.000000000 +0200
+@@ -480,7 +480,8 @@ stdio_file_write (struct ui_file *file, 
    if (stdio->magic != &stdio_file_magic)
      internal_error (__FILE__, __LINE__,
  		    _("stdio_file_write: bad magic number"));
@@ -649,10 +342,11 @@
  }
  
  static void
-diff -u -rup gdb-6.6-orig/gdb/utils.c gdb-6.6/gdb/utils.c
---- gdb-6.6-orig/gdb/utils.c	2007-04-08 20:49:09.000000000 +0200
-+++ gdb-6.6/gdb/utils.c	2007-04-08 20:56:01.000000000 +0200
-@@ -718,7 +718,8 @@ internal_vproblem (struct internal_probl
+Index: gdb-6.7/gdb/utils.c
+===================================================================
+--- gdb-6.7.orig/gdb/utils.c	2007-08-23 20:08:46.000000000 +0200
++++ gdb-6.7/gdb/utils.c	2007-10-14 23:42:39.000000000 +0200
+@@ -716,7 +716,8 @@ internal_vproblem (struct internal_probl
  	abort ();	/* NOTE: GDB has only three calls to abort().  */
        default:
  	dejavu = 3;
@@ -662,9 +356,11 @@
  	exit (1);
        }
    }
---- ./gdb/gdbserver/gdbreplay.c	29 Mar 2007 01:06:47 -0000	1.14
-+++ ./gdb/gdbserver/gdbreplay.c	8 Aug 2007 20:32:12 -0000
-@@ -358,7 +358,12 @@ expect (FILE *fp)
+Index: gdb-6.7/gdb/gdbserver/gdbreplay.c
+===================================================================
+--- gdb-6.7.orig/gdb/gdbserver/gdbreplay.c	2007-08-23 20:08:48.000000000 +0200
++++ gdb-6.7/gdb/gdbserver/gdbreplay.c	2007-10-14 23:42:39.000000000 +0200
+@@ -356,7 +356,12 @@ expect (FILE *fp)
  	{
  	  break;
  	}
@@ -678,7 +374,7 @@
      }
    while (fromlog == fromgdb);
    if (fromlog != EOL)
-@@ -385,7 +390,11 @@ play (FILE *fp)
+@@ -383,7 +388,11 @@ play (FILE *fp)
    while ((fromlog = logchar (fp)) != EOL)
      {
        ch = fromlog;

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

Index: gdb-6.5-bz181390-memory-address-width.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz181390-memory-address-width.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz181390-memory-address-width.patch	1 Oct 2006 19:21:15 -0000	1.1
+++ gdb-6.5-bz181390-memory-address-width.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -64,7 +64,7 @@
  {
    /* Assume a CORE_ADDR can fit in a LONGEST (for now).  Not sure
       whether we want this to be true eventually.  */
-@@ -1054,6 +1053,33 @@ value_as_address (struct value *val)
+@@ -1054,6 +1053,34 @@ value_as_address (struct value *val)
    return unpack_long (value_type (val), value_contents (val));
  #endif
  }
@@ -76,6 +76,7 @@
 +value_as_address (struct value *val)
 +{
 +  CORE_ADDR addr;
++  int addr_bit;
 +
 +  addr = value_as_address_core (val);
 +
@@ -88,7 +89,7 @@
 +     either zero or sign extended.  Should ADDRESS_TO_POINTER() or
 +     some ADDRESS_TO_PRINTABLE() be used to do the conversion?  */
 +
-+  int addr_bit = TARGET_ADDR_BIT;
++  addr_bit = gdbarch_addr_bit (current_gdbarch);
 +
 +  if (addr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
 +    addr &= ((CORE_ADDR) 1 << addr_bit) - 1;

gdb-6.5-bz216711-clone-is-outermost.patch:

Index: gdb-6.5-bz216711-clone-is-outermost.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz216711-clone-is-outermost.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz216711-clone-is-outermost.patch	19 Dec 2006 19:26:15 -0000	1.1
+++ gdb-6.5-bz216711-clone-is-outermost.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -16,10 +16,15 @@
 	* gdb.threads/bt-clone-stop.exp, gdb.threads/bt-clone-stop.c:
 	New file.
 
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
---- ./gdb/amd64-linux-tdep.c	19 Aug 2006 15:15:18 -0000	1.12
-+++ ./gdb/amd64-linux-tdep.c	17 Dec 2006 17:59:05 -0000
-@@ -235,6 +235,80 @@ amd64_linux_register_reggroup_p (struct 
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/amd64-linux-tdep.c
+===================================================================
+--- gdb-6.7.orig/gdb/amd64-linux-tdep.c	2007-08-23 20:08:26.000000000 +0200
++++ gdb-6.7/gdb/amd64-linux-tdep.c	2007-10-16 15:57:03.000000000 +0200
+@@ -234,6 +234,80 @@ amd64_linux_register_reggroup_p (struct 
  
  /* Set the program counter for process PTID to PC.  */
  
@@ -98,9 +103,9 @@
 +}
 +
  static void
- amd64_linux_write_pc (CORE_ADDR pc, ptid_t ptid)
+ amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
  {
-@@ -273,6 +342,8 @@ amd64_linux_init_abi (struct gdbarch_inf
+@@ -272,6 +346,8 @@ amd64_linux_init_abi (struct gdbarch_inf
    tdep->sc_reg_offset = amd64_linux_sc_reg_offset;
    tdep->sc_num_regs = ARRAY_SIZE (amd64_linux_sc_reg_offset);
  
@@ -109,9 +114,11 @@
    /* GNU/Linux uses SVR4-style shared libraries.  */
    set_solib_svr4_fetch_link_map_offsets
      (gdbarch, svr4_lp64_fetch_link_map_offsets);
---- ./gdb/amd64-tdep.c	19 Aug 2006 15:15:18 -0000	1.32
-+++ ./gdb/amd64-tdep.c	17 Dec 2006 17:59:05 -0000
-@@ -879,11 +879,16 @@ amd64_frame_this_id (struct frame_info *
+Index: gdb-6.7/gdb/amd64-tdep.c
+===================================================================
+--- gdb-6.7.orig/gdb/amd64-tdep.c	2007-10-12 17:48:39.000000000 +0200
++++ gdb-6.7/gdb/amd64-tdep.c	2007-10-16 15:57:03.000000000 +0200
+@@ -849,11 +849,16 @@ amd64_frame_this_id (struct frame_info *
  {
    struct amd64_frame_cache *cache =
      amd64_frame_cache (next_frame, this_cache);
@@ -128,9 +135,11 @@
    (*this_id) = frame_id_build (cache->base + 16, cache->pc);
  }
  
---- ./gdb/i386-tdep.c	8 Aug 2006 21:36:46 -0000	1.225
-+++ ./gdb/i386-tdep.c	17 Dec 2006 17:59:10 -0000
-@@ -2313,6 +2313,9 @@ i386_gdbarch_init (struct gdbarch_info i
+Index: gdb-6.7/gdb/i386-tdep.c
+===================================================================
+--- gdb-6.7.orig/gdb/i386-tdep.c	2007-10-12 17:48:39.000000000 +0200
++++ gdb-6.7/gdb/i386-tdep.c	2007-10-16 15:57:03.000000000 +0200
+@@ -2355,6 +2355,9 @@ i386_gdbarch_init (struct gdbarch_info i
    tdep->sc_pc_offset = -1;
    tdep->sc_sp_offset = -1;
  
@@ -140,20 +149,24 @@
    /* The format used for `long double' on almost all i386 targets is
       the i387 extended floating-point format.  In fact, of all targets
       in the GCC 2.95 tree, only OSF/1 does it different, and insists
---- ./gdb/i386-tdep.h	21 Jan 2006 20:59:50 -0000	1.46
-+++ ./gdb/i386-tdep.h	17 Dec 2006 17:59:10 -0000
-@@ -104,6 +104,9 @@ struct gdbarch_tdep
-      is deprecated, please use `sc_reg_offset' instead.  */
-   int sc_pc_offset;
-   int sc_sp_offset;
+Index: gdb-6.7/gdb/i386-tdep.h
+===================================================================
+--- gdb-6.7.orig/gdb/i386-tdep.h	2007-08-23 20:08:34.000000000 +0200
++++ gdb-6.7/gdb/i386-tdep.h	2007-10-16 15:57:32.000000000 +0200
+@@ -106,6 +106,9 @@ struct gdbarch_tdep
+   /* ISA-specific data types.  */
+   struct type *i386_mmx_type;
+   struct type *i386_sse_type;
 +
 +  /* Detect OS dependent outermost frames; such as `clone'.  */
 +  int (*outermost_frame_p) (struct frame_info *next_frame);
  };
  
  /* Floating-point registers.  */
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ./gdb/testsuite/gdb.threads/bt-clone-stop.c	17 Dec 2006 17:59:19 -0000
+Index: gdb-6.7/gdb/testsuite/gdb.threads/bt-clone-stop.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.threads/bt-clone-stop.c	2007-10-16 15:57:03.000000000 +0200
 @@ -0,0 +1,39 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -194,8 +207,10 @@
 +	for (;;)
 +		pause();
 +}
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ ./gdb/testsuite/gdb.threads/bt-clone-stop.exp	17 Dec 2006 17:59:19 -0000
+Index: gdb-6.7/gdb/testsuite/gdb.threads/bt-clone-stop.exp
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.threads/bt-clone-stop.exp	2007-10-16 15:57:03.000000000 +0200
 @@ -0,0 +1,61 @@
 +# Copyright 2006 Free Software Foundation, Inc.
 +

gdb-6.5-bz237872-ppc-long-double.patch:

Index: gdb-6.5-bz237872-ppc-long-double.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-bz237872-ppc-long-double.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-bz237872-ppc-long-double.patch	25 Apr 2007 21:13:29 -0000	1.1
+++ gdb-6.5-bz237872-ppc-long-double.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -122,3 +122,56 @@
  
    if (tdep->wordsize == 4)
      {
+
+
+
+2007-10-17  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+diff -u -u -X /home/jkratoch/.diffi.list -rup gdb-6.7-patched/gdb/gdbtypes.c gdb-6.7/gdb/gdbtypes.c
+--- gdb-6.7-patched/gdb/gdbtypes.c	2007-09-05 02:51:48.000000000 +0200
++++ gdb-6.7/gdb/gdbtypes.c	2007-10-17 12:09:00.000000000 +0200
+@@ -95,6 +95,10 @@ const struct floatformat *floatformats_v
+   &floatformat_vax_d,
+   &floatformat_vax_d
+ };
++const struct floatformat *floatformat_ppc64_long_double[BFD_ENDIAN_UNKNOWN] = {
++  &floatformat_ppc64_long_double_big,
++  &floatformat_ppc64_long_double_little
++};
+ 
+ struct type *builtin_type_ieee_single;
+ struct type *builtin_type_ieee_double;
+diff -u -u -X /home/jkratoch/.diffi.list -rup gdb-6.7-patched/gdb/gdbtypes.h gdb-6.7/gdb/gdbtypes.h
+--- gdb-6.7-patched/gdb/gdbtypes.h	2007-09-05 02:51:48.000000000 +0200
++++ gdb-6.7/gdb/gdbtypes.h	2007-10-17 12:08:30.000000000 +0200
+@@ -1121,6 +1121,7 @@ extern const struct floatformat *floatfo
+ extern const struct floatformat *floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN];
+ extern const struct floatformat *floatformats_vax_f[BFD_ENDIAN_UNKNOWN];
+ extern const struct floatformat *floatformats_vax_d[BFD_ENDIAN_UNKNOWN];
++extern const struct floatformat *floatformat_ppc64_long_double[BFD_ENDIAN_UNKNOWN];
+ 
+ extern struct type *builtin_type_ieee_single;
+ extern struct type *builtin_type_ieee_double;
+diff -u -u -X /home/jkratoch/.diffi.list -rup gdb-6.7-patched/gdb/rs6000-tdep.c gdb-6.7/gdb/rs6000-tdep.c
+--- gdb-6.7-patched/gdb/rs6000-tdep.c	2007-10-16 20:52:45.000000000 +0200
++++ gdb-6.7/gdb/rs6000-tdep.c	2007-10-17 12:07:54.000000000 +0200
+@@ -3755,16 +3755,7 @@ rs6000_gdbarch_init (struct gdbarch_info
+   set_gdbarch_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
+   if (sysv_abi)
+     {
+-      int byte_order = gdbarch_byte_order (gdbarch);
+-
+-      if (byte_order == BFD_ENDIAN_BIG)
+-        set_gdbarch_long_double_format (gdbarch, &floatformat_ppc64_long_double_big);
+-      else if (byte_order == BFD_ENDIAN_LITTLE) 
+-        set_gdbarch_long_double_format (gdbarch, &floatformat_ppc64_long_double_little);
+-      else
+-        internal_error (__FILE__, __LINE__,
+-                      _("rs6000_gdbarch_init: "
+-                        "bad byte order"));
++      set_gdbarch_long_double_format (gdbarch, floatformat_ppc64_long_double);
+       set_gdbarch_long_double_bit (gdbarch, 16 * TARGET_CHAR_BIT);
+     }
+   else

gdb-6.5-dwarf-stack-overflow.patch:

Index: gdb-6.5-dwarf-stack-overflow.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-dwarf-stack-overflow.patch,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- gdb-6.5-dwarf-stack-overflow.patch	4 Sep 2006 07:49:01 -0000	1.1.1.2
+++ gdb-6.5-dwarf-stack-overflow.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -6,11 +6,15 @@
 	boundaries.
 	* dwarfread.c (locval): Likewise.
 
-Index: gdb-6.5/gdb/dwarf2read.c
+2007-10-15  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/dwarf2read.c
 ===================================================================
---- gdb-6.5.orig/gdb/dwarf2read.c	2006-09-04 02:02:23.000000000 -0300
-+++ gdb-6.5/gdb/dwarf2read.c	2006-09-04 02:02:23.000000000 -0300
-@@ -8667,8 +8667,7 @@ dwarf2_fundamental_type (struct objfile 
+--- gdb-6.7.orig/gdb/dwarf2read.c	2007-10-15 00:08:30.000000000 +0200
++++ gdb-6.7/gdb/dwarf2read.c	2007-10-15 21:42:43.000000000 +0200
+@@ -9070,8 +9070,7 @@ dwarf2_fundamental_type (struct objfile 
     callers will only want a very basic result and this can become a
     complaint.
  
@@ -20,7 +24,7 @@
  
  static CORE_ADDR
  decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
-@@ -8685,7 +8684,7 @@ decode_locdesc (struct dwarf_block *blk,
+@@ -9088,7 +9087,7 @@ decode_locdesc (struct dwarf_block *blk,
  
    i = 0;
    stacki = 0;
@@ -29,7 +33,7 @@
  
    while (i < size)
      {
-@@ -8864,6 +8863,16 @@ decode_locdesc (struct dwarf_block *blk,
+@@ -9270,6 +9269,16 @@ decode_locdesc (struct dwarf_block *blk,
  		     dwarf_stack_op_name (op));
  	  return (stack[stacki]);
  	}
@@ -46,44 +50,3 @@
      }
    return (stack[stacki]);
  }
-Index: gdb-6.5/gdb/dwarfread.c
-===================================================================
---- gdb-6.5.orig/gdb/dwarfread.c	2005-12-17 20:33:59.000000000 -0200
-+++ gdb-6.5/gdb/dwarfread.c	2006-09-04 02:02:23.000000000 -0300
-@@ -2138,9 +2138,7 @@ decode_line_numbers (char *linetable)
- 
-    NOTES
- 
--   Note that stack[0] is unused except as a default error return.
--   Note that stack overflow is not yet handled.
-- */
-+   Note that stack[0] is unused except as a default error return. */
- 
- static int
- locval (struct dieinfo *dip)
-@@ -2160,7 +2158,7 @@ locval (struct dieinfo *dip)
-   loc += nbytes;
-   end = loc + locsize;
-   stacki = 0;
--  stack[stacki] = 0;
-+  stack[++stacki] = 0;
-   dip->isreg = 0;
-   dip->offreg = 0;
-   dip->optimized_out = 1;
-@@ -2224,6 +2222,16 @@ locval (struct dieinfo *dip)
- 	  stacki--;
- 	  break;
- 	}
-+      /* Enforce maximum stack depth of size-1 to avoid ++stacki writing
-+         outside of the allocated space. Also enforce minimum > 0.
-+         -- wad at google.com 14 Aug 2006 */
-+      if (stacki >= sizeof (stack) / sizeof (*stack) - 1)
-+	internal_error (__FILE__, __LINE__,
-+	                _("location description stack too deep: %d"),
-+	                stacki);
-+      if (stacki <= 0)
-+	internal_error (__FILE__, __LINE__,
-+	                _("location description stack too shallow"));
-     }
-   return (stack[stacki]);
- }

gdb-6.5-gcore-i386-on-amd64.patch:

Index: gdb-6.5-gcore-i386-on-amd64.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-gcore-i386-on-amd64.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.5-gcore-i386-on-amd64.patch	21 Jan 2007 01:53:01 -0000	1.2
+++ gdb-6.5-gcore-i386-on-amd64.patch	1 Nov 2007 20:24:20 -0000	1.3
@@ -15,12 +15,15 @@
 	* linux-nat.h: Likewise.
 	* Makefile.in: Dependencies updated.
 
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
-Index: gdb-6.6/gdb/Makefile.in
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/Makefile.in
 ===================================================================
---- 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-6.7.orig/gdb/Makefile.in	2007-10-14 23:57:38.000000000 +0200
++++ gdb-6.7/gdb/Makefile.in	2007-10-16 15:46:48.000000000 +0200
+@@ -717,6 +717,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 +31,7 @@
  gdb_ptrace_h = gdb_ptrace.h
  gdb_regex_h = gdb_regex.h $(xregex_h)
  gdb_select_h = gdb_select.h
-@@ -714,6 +715,7 @@ gdb_string_h = gdb_string.h
+@@ -726,6 +727,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,31 +39,31 @@
  gdb_vfork_h = gdb_vfork.h
  gdb_wait_h = gdb_wait.h
  glibc_tdep_h = glibc-tdep.h
-@@ -1779,7 +1781,8 @@ amd64fbsd-tdep.o: amd64fbsd-tdep.c $(def
+@@ -1793,7 +1795,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) $(amd64_linux_tdep_h)
-+	$(i386_linux_tdep_h) $(amd64_nat_h) $(target_h) $(amd64_linux_tdep_h) \
+-	$(i386_linux_tdep_h) $(amd64_nat_h) $(amd64_linux_tdep_h)
++	$(i386_linux_tdep_h) $(amd64_nat_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) $(gdbtypes_h) $(reggroups_h) $(amd64_linux_tdep_h)
-Index: gdb-6.6/gdb/amd64-linux-nat.c
+Index: gdb-6.7/gdb/amd64-linux-nat.c
 ===================================================================
---- 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 @@
+--- gdb-6.7.orig/gdb/amd64-linux-nat.c	2007-10-14 23:39:04.000000000 +0200
++++ gdb-6.7/gdb/amd64-linux-nat.c	2007-10-16 15:46:18.000000000 +0200
+@@ -51,6 +51,9 @@
  #include "amd64-tdep.h"
  #include "i386-linux-tdep.h"
  #include "amd64-nat.h"
 +#include "i387-tdep.h"
-+#include "bfd/elf-bfd.h"
++#include "elf-bfd.h"
 +#include "gdb_procfs32.h"
  
  /* Mapping between the general-purpose registers in GNU/Linux x86-64
     `struct user' format and GDB's register cache layout.  */
-@@ -87,6 +90,35 @@ static int amd64_linux_gregset64_reg_off
+@@ -85,6 +88,35 @@ static int amd64_linux_gregset64_reg_off
     GNU/Linux i386 registers are all 32-bit, but since we're
     little-endian we get away with that.  */
  
@@ -96,7 +99,7 @@
  /* From <sys/reg.h> on GNU/Linux i386.  */
  static int amd64_linux_gregset32_reg_offset[] =
  {
-@@ -105,6 +137,94 @@ static int amd64_linux_gregset32_reg_off
+@@ -103,6 +135,96 @@ static int amd64_linux_gregset32_reg_off
  };
  
  
@@ -157,12 +160,13 @@
 +}
 +
 +static char *
-+amd64_elfcore_write_prxfpreg32 (bfd *abfd, char *buf, int *bufsiz)
++amd64_elfcore_write_prxfpreg32 (bfd *abfd, char *buf, int *bufsiz,
++				struct regcache *regcache)
 +{
 +  char *note_name = "LINUX";
 +  elf_fpxregset32_t fpxregs32;
 +
-+  i387_fill_fxsave (&fpxregs32, -1);
++  i387_collect_fxsave (regcache, -1, &fpxregs32);
 +  return elfcore_write_note(abfd, buf, bufsiz,
 +				     note_name, NT_PRXFPREG, &fpxregs32,
 +				     sizeof(fpxregs32));
@@ -170,18 +174,19 @@
 +
 +static char *
 +amd64_linux_elfcore_write_prfpreg (bfd *abfd, char *buf,
-+			     int *bufsiz, const void *fpregs, int size)
++				   int *bufsiz, const void *fpregs, int size,
++				   struct regcache *regcache)
 +{
 +  if (gdbarch_ptr_bit(current_gdbarch) == 32)
 +    {
 +      char *note_name = "CORE";
 +      elf_fpregset32_t fpregs32;
 +  
-+      i387_fill_fsave (&fpregs32, -1);
++      i387_collect_fsave (regcache, -1, &fpregs32);
 +      buf = elfcore_write_note(abfd, buf, bufsiz, note_name,
 +			       NT_FPREGSET, &fpregs32, sizeof(fpregs32));
 +
-+      return amd64_elfcore_write_prxfpreg32 (abfd, buf, bufsiz);
++      return amd64_elfcore_write_prxfpreg32 (abfd, buf, bufsiz, regcache);
 +    }
 +  else
 +    return elfcore_write_prfpreg (abfd, buf, bufsiz, fpregs, size);
@@ -203,11 +208,11 @@
    /* Register the target.  */
    linux_nat_add_target (t);
  
-Index: gdb-6.6/gdb/config.in
+Index: gdb-6.7/gdb/config.in
 ===================================================================
---- 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 @@
+--- gdb-6.7.orig/gdb/config.in	2007-06-18 17:46:37.000000000 +0200
++++ gdb-6.7/gdb/config.in	2007-10-16 15:46:18.000000000 +0200
+@@ -385,6 +385,9 @@
  /* Define to 1 if you have the <sys/poll.h> header file. */
  #undef HAVE_SYS_POLL_H
  
@@ -217,7 +222,7 @@
  /* Define to 1 if you have the <sys/procfs.h> header file. */
  #undef HAVE_SYS_PROCFS_H
  
-@@ -397,6 +400,9 @@
+@@ -412,6 +415,9 @@
  /* Define to 1 if you have the <sys/types.h> header file. */
  #undef HAVE_SYS_TYPES_H
  
@@ -227,11 +232,11 @@
  /* Define to 1 if you have the <sys/user.h> header file. */
  #undef HAVE_SYS_USER_H
  
-Index: gdb-6.6/gdb/configure
+Index: gdb-6.7/gdb/configure
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/configure	2007-09-29 22:54:13.000000000 +0200
++++ gdb-6.7/gdb/configure	2007-10-16 15:46:18.000000000 +0200
+@@ -10439,6 +10439,157 @@ done
  
  
  
@@ -389,11 +394,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.6/gdb/configure.ac
+Index: gdb-6.7/gdb/configure.ac
 ===================================================================
---- 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, [], [],
+--- gdb-6.7.orig/gdb/configure.ac	2007-09-29 22:54:13.000000000 +0200
++++ gdb-6.7/gdb/configure.ac	2007-10-16 15:46:18.000000000 +0200
+@@ -424,6 +424,7 @@ AC_CHECK_HEADERS(sys/user.h, [], [],
  # include <sys/param.h>
  #endif
  ])
@@ -401,11 +406,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.6/gdb/gcore.c
+Index: gdb-6.7/gdb/gcore.c
 ===================================================================
---- 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, 
+--- gdb-6.7.orig/gdb/gcore.c	2007-10-14 23:57:38.000000000 +0200
++++ gdb-6.7/gdb/gcore.c	2007-10-16 15:46:18.000000000 +0200
+@@ -317,6 +317,11 @@ gcore_create_callback (CORE_ADDR vaddr, 
    asection *osec;
    flagword flags = SEC_ALLOC | SEC_HAS_CONTENTS | SEC_LOAD;
  
@@ -417,10 +422,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.6/gdb/gdb_procfs32.h
+Index: gdb-6.7/gdb/gdb_procfs32.h
 ===================================================================
 --- /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
++++ gdb-6.7/gdb/gdb_procfs32.h	2007-10-16 15:46:18.000000000 +0200
 @@ -0,0 +1,128 @@
 +#ifdef HAVE_SYS_PROCFS32_H
 +#include <sys/procfs32.h>
@@ -550,10 +555,10 @@
 +#endif	/* _SYS_PROCFS32_H */
 +
 +#endif /* HAVE_SYS_PROCFS32_H */
-Index: gdb-6.6/gdb/gdb_user32.h
+Index: gdb-6.7/gdb/gdb_user32.h
 ===================================================================
 --- /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
++++ gdb-6.7/gdb/gdb_user32.h	2007-10-16 15:46:18.000000000 +0200
 @@ -0,0 +1,108 @@
 +#ifdef HAVE_SYS_USER32_H
 +#include <sys/user32.h>
@@ -663,11 +668,11 @@
 +#endif	/* _SYS_USER32_H */
 +
 +#endif /* HAVE_SYS_USER32_H */
-Index: gdb-6.6/gdb/linux-nat.c
+Index: gdb-6.7/gdb/linux-nat.c
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/linux-nat.c	2007-10-15 21:42:26.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.c	2007-10-16 15:46:18.000000000 +0200
+@@ -98,6 +98,21 @@ static LONGEST (*super_xfer_partial) (st
  				      const gdb_byte *,
  				      ULONGEST, LONGEST);
  
@@ -677,15 +682,21 @@
 +  (bfd *, char *, int *, const char *, const char *) = elfcore_write_prpsinfo;
 +char *(*linux_elfcore_write_prstatus)
 +  (bfd *, char *, int *, long, int, const void *) = elfcore_write_prstatus;
-+char *(*linux_elfcore_write_prfpreg)
-+  (bfd *, char *, int *, const void *, int) = elfcore_write_prfpreg;
++static char *
++linux_elfcore_write_prfpreg_bfd (bfd *abfd, char *buf, int *bufsiz,
++				 const void *fpregs, int size, struct regcache *regcache)
++{
++  return elfcore_write_prfpreg (abfd, buf, bufsiz, fpregs, size);
++}
++char *(*linux_elfcore_write_prfpreg) (bfd *, char *, int *, const void *, int,
++			   struct regcache *) = linux_elfcore_write_prfpreg_bfd;
 +
  static int debug_linux_nat;
  static void
  show_debug_linux_nat (struct ui_file *file, int from_tty,
-@@ -2715,11 +2724,11 @@ linux_nat_do_thread_registers (bfd *obfd
+@@ -2687,11 +2696,11 @@ linux_nat_do_thread_registers (bfd *obfd
    else
-     fill_gregset (&gregs, -1);
+     fill_gregset (regcache, &gregs, -1);
  
 -  note_data = (char *) elfcore_write_prstatus (obfd,
 -					       note_data,
@@ -700,9 +711,9 @@
  
    if (core_regset_p
        && (regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
-@@ -2730,10 +2739,10 @@ linux_nat_do_thread_registers (bfd *obfd
+@@ -2702,10 +2711,11 @@ linux_nat_do_thread_registers (bfd *obfd
    else
-     fill_fpregset (&fpregs, -1);
+     fill_fpregset (regcache, &fpregs, -1);
  
 -  note_data = (char *) elfcore_write_prfpreg (obfd,
 -					      note_data,
@@ -711,13 +722,14 @@
 +  note_data = (char *) linux_elfcore_write_prfpreg (obfd,
 +						    note_data,
 +						    note_size,
-+						    &fpregs, sizeof (fpregs));
++						    &fpregs, sizeof (fpregs),
++						    regcache);
  
  #ifdef FILL_FPXREGSET
    if (core_regset_p
-@@ -2828,9 +2837,9 @@ linux_nat_make_corefile_notes (bfd *obfd
- 	  strncat (psargs, get_inferior_args (),
- 		   sizeof (psargs) - strlen (psargs));
+@@ -2799,9 +2808,9 @@ linux_nat_make_corefile_notes (bfd *obfd
+ 		       psargs_end - string_end);
+ 	    }
  	}
 -      note_data = (char *) elfcore_write_prpsinfo (obfd,
 -						   note_data,
@@ -728,11 +740,11 @@
      }
  
    /* Dump information for threads.  */
-Index: gdb-6.6/gdb/linux-nat.h
+Index: gdb-6.7/gdb/linux-nat.h
 ===================================================================
---- 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
+--- gdb-6.7.orig/gdb/linux-nat.h	2007-10-13 05:09:50.000000000 +0200
++++ gdb-6.7/gdb/linux-nat.h	2007-10-16 15:46:18.000000000 +0200
+@@ -110,3 +110,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);
@@ -744,4 +756,4 @@
 +extern char *(*linux_elfcore_write_prstatus)
 +  (bfd *, char *, int *, long, int, const void *);
 +extern char *(*linux_elfcore_write_prfpreg)
-+  (bfd *, char *, int *, const void *, int);
++  (bfd *, char *, int *, const void *, int, struct regcache *);

gdb-6.5-sharedlibrary-path.patch:

Index: gdb-6.5-sharedlibrary-path.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.5-sharedlibrary-path.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.5-sharedlibrary-path.patch	21 Sep 2006 13:07:53 -0000	1.1
+++ gdb-6.5-sharedlibrary-path.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -12,15 +12,15 @@
 	* solib-svr4.c (svr4_fetch_objfile_link_map): Match even absolute
 	requested pathnames to the internal loaded relative pathnames.
 
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
-Index: gdb-6.5/gdb/solib-svr4.c
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/solib-svr4.c
 ===================================================================
-RCS file: /cvs/src/src/gdb/solib-svr4.c,v
-retrieving revision 1.58
-diff -u -p -r1.58 gdb-6.5/gdb/solib-svr4.c
---- gdb-6.5.orig/gdb/solib-svr4.c	18 May 2006 20:38:56 -0000	1.58
-+++ gdb-6.5/gdb/solib-svr4.c	1 Sep 2006 18:47:10 -0000
-@@ -774,62 +774,81 @@ CORE_ADDR
+--- gdb-6.7.orig/gdb/solib-svr4.c	2007-10-14 23:04:45.000000000 +0200
++++ gdb-6.7/gdb/solib-svr4.c	2007-10-16 15:43:56.000000000 +0200
+@@ -1009,10 +1009,14 @@ CORE_ADDR
  svr4_fetch_objfile_link_map (struct objfile *objfile)
  {
    CORE_ADDR lm;
@@ -29,136 +29,48 @@
    if ((debug_base = locate_base ()) == 0)
      return 0;   /* failed somehow... */
  
--  /* Position ourselves on the first link map.  */
--  lm = solib_svr4_r_map ();  
--  while (lm)
-+  for (resolve = 0; resolve <= 1; resolve++)
-     {
--      /* Get info on the layout of the r_debug and link_map structures. */
--      struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
--      int errcode;
--      char *buffer;
--      struct lm_info objfile_lm_info;
--      struct cleanup *old_chain;
--      CORE_ADDR name_address;
--      gdb_byte *l_name_buf = xmalloc (lmo->l_name_size);
--      old_chain = make_cleanup (xfree, l_name_buf);
--
--      /* Set up the buffer to contain the portion of the link_map
--         structure that gdb cares about.  Note that this is not the
--         whole link_map structure.  */
--      objfile_lm_info.lm = xzalloc (lmo->link_map_size);
--      make_cleanup (xfree, objfile_lm_info.lm);
--
--      /* Read the link map into our internal structure.  */
--      read_memory (lm, objfile_lm_info.lm, lmo->link_map_size);
--
--      /* Read address of name from target memory to GDB.  */
--      read_memory (lm + lmo->l_name_offset, l_name_buf, lmo->l_name_size);
--
--      /* Extract this object's name.  Assume that the address is
--         unsigned.  */
--      name_address = extract_unsigned_integer (l_name_buf, lmo->l_name_size);
--      target_read_string (name_address, &buffer,
--      			  SO_NAME_MAX_PATH_SIZE - 1, &errcode);
--      make_cleanup (xfree, buffer);
--      if (errcode != 0)
--	warning (_("Can't read pathname for load map: %s."),
--		 safe_strerror (errcode));
--      else
--  	{
--	  /* Is this the linkmap for the file we want?  */
--	  /* If the file is not a shared library and has no name,
--	     we are sure it is the main executable, so we return that.  */
--	  if ((buffer && strcmp (buffer, objfile->name) == 0)
--              || (!(objfile->flags & OBJF_SHARED) && (strcmp (buffer, "") == 0)))
--  	    {
--    	      do_cleanups (old_chain);
--    	      return lm;
--      	    }
--  	}
--      /* Not the file we wanted, continue checking.  Assume that the
--         address is unsigned.  */
--      lm = extract_unsigned_integer (objfile_lm_info.lm + lmo->l_next_offset,
--				     lmo->l_next_size);
--      do_cleanups (old_chain);
-+      /* Position ourselves on the first link map.  */
-+      lm = solib_svr4_r_map ();  
-+      while (lm)
-+	{
-+	  /* Get info on the layout of the r_debug and link_map structures. */
-+	  struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
-+	  int errcode;
-+	  char *buffer;
-+	  struct lm_info objfile_lm_info;
-+	  struct cleanup *old_chain;
-+	  CORE_ADDR name_address;
-+	  gdb_byte *l_name_buf = xmalloc (lmo->l_name_size);
-+	  old_chain = make_cleanup (xfree, l_name_buf);
-+
-+	  /* Set up the buffer to contain the portion of the link_map
-+	     structure that gdb cares about.  Note that this is not the
-+	     whole link_map structure.  */
-+	  objfile_lm_info.lm = xzalloc (lmo->link_map_size);
-+	  make_cleanup (xfree, objfile_lm_info.lm);
-+
-+	  /* Read the link map into our internal structure.  */
-+	  read_memory (lm, objfile_lm_info.lm, lmo->link_map_size);
-+
-+	  /* Read address of name from target memory to GDB.  */
-+	  read_memory (lm + lmo->l_name_offset, l_name_buf, lmo->l_name_size);
-+
-+	  /* Extract this object's name.  Assume that the address is
-+	     unsigned.  */
-+	  name_address = extract_unsigned_integer (l_name_buf, lmo->l_name_size);
-+	  target_read_string (name_address, &buffer,
-+			      SO_NAME_MAX_PATH_SIZE - 1, &errcode);
-+	  make_cleanup (xfree, buffer);
-+	  if (errcode != 0)
-+	    warning (_("Can't read pathname for load map: %s."),
-+		     safe_strerror (errcode));
-+	  else
++for (resolve = 0; resolve <= 1; resolve++)
++{
++
+   /* Position ourselves on the first link map.  */
+   lm = solib_svr4_r_map ();  
+   while (lm)
+@@ -1051,6 +1055,21 @@ svr4_fetch_objfile_link_map (struct objf
+ 		 safe_strerror (errcode));
+       else
+   	{
++	  /* solib_svr4_r_map() may contain relative pathnames while
++	     `objfile->name' is absolute.  */
++	  if (resolve && buffer && buffer[0] != '/')
 +	    {
-+	      /* solib_svr4_r_map() may contain relative pathnames while
-+	         `objfile->name' is absolute.  */
-+	      if (resolve && buffer && buffer[0] != '/')
-+	        {
-+		  char *absolute;
-+		  int fd;
-+
-+		  fd = solib_open (buffer, &absolute);
-+		  if (fd != -1)
-+		    {
-+		      make_cleanup (xfree, absolute);
-+		      buffer = absolute;
-+		      close (fd);
-+		    }
-+		}
-+	      /* Is this the linkmap for the file we want?  */
-+	      /* If the file is not a shared library and has no name,
-+		 we are sure it is the main executable, so we return that.  */
-+	      if ((buffer && strcmp (buffer, objfile->name) == 0)
-+		  || (!(objfile->flags & OBJF_SHARED) && (strcmp (buffer, "") == 0)))
++	      char *absolute;
++	      int fd;
++
++	      fd = solib_open (buffer, &absolute);
++	      if (fd != -1)
 +		{
-+		  do_cleanups (old_chain);
-+		  return lm;
++		  make_cleanup (xfree, absolute);
++		  buffer = absolute;
++		  close (fd);
 +		}
 +	    }
-+	  /* Not the file we wanted, continue checking.  Assume that the
-+	     address is unsigned.  */
-+	  lm = extract_unsigned_integer (objfile_lm_info.lm + lmo->l_next_offset,
-+					 lmo->l_next_size);
-+	  do_cleanups (old_chain);
-+	}
+ 	  /* Is this the linkmap for the file we want?  */
+ 	  /* If the file is not a shared library and has no name,
+ 	     we are sure it is the main executable, so we return that.  */
+@@ -1069,6 +1088,9 @@ svr4_fetch_objfile_link_map (struct objf
+ 				  builtin_type_void_data_ptr);
+       do_cleanups (old_chain);
      }
++
++}	/* resolve */
++
    return 0;
  }
-Index: gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
+ 
+Index: gdb-6.7/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
 ===================================================================
-RCS file: gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
-diff -N gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-main.c	1 Sep 2006 18:47:14 -0000
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.threads/tls-sepdebug-main.c	2007-10-16 15:40:01.000000000 +0200
 @@ -0,0 +1,25 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -185,12 +97,10 @@
 +{
 +  return 0;
 +}
-Index: gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
+Index: gdb-6.7/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
 ===================================================================
-RCS file: gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
-diff -N gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c	1 Sep 2006 18:47:14 -0000
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c	2007-10-16 15:40:01.000000000 +0200
 @@ -0,0 +1,22 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -214,12 +124,10 @@
 +   bug-gdb at prep.ai.mit.edu  */
 +
 +__thread int var = 42;
-Index: gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug.exp
+Index: gdb-6.7/gdb/testsuite/gdb.threads/tls-sepdebug.exp
 ===================================================================
-RCS file: gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug.exp
-diff -N gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug.exp
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ gdb-6.5/gdb/testsuite/gdb.threads/tls-sepdebug.exp	1 Sep 2006 18:47:14 -0000
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gdb-6.7/gdb/testsuite/gdb.threads/tls-sepdebug.exp	2007-10-16 15:40:01.000000000 +0200
 @@ -0,0 +1,81 @@
 +# Copyright 2006 Free Software Foundation, Inc.
 +

gdb-6.6-buildid-locate.patch:

Index: gdb-6.6-buildid-locate.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-buildid-locate.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- gdb-6.6-buildid-locate.patch	19 Oct 2007 00:12:58 -0000	1.4
+++ gdb-6.6-buildid-locate.patch	1 Nov 2007 20:24:20 -0000	1.5
@@ -1,7 +1,14 @@
-diff -u -rup gdb-6.6-orig/gdb/Makefile.in gdb-6.6/gdb/Makefile.in
---- gdb-6.6-orig/gdb/Makefile.in	2007-08-28 15:31:19.000000000 +0200
-+++ gdb-6.6/gdb/Makefile.in	2007-08-28 15:32:40.000000000 +0200
-@@ -1917,7 +1917,8 @@ corelow.o: corelow.c $(defs_h) $(arch_ut
+[base]
+
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/Makefile.in
+===================================================================
+--- gdb-6.7.orig/gdb/Makefile.in	2007-10-16 16:19:18.000000000 +0200
++++ gdb-6.7/gdb/Makefile.in	2007-10-16 16:42:34.000000000 +0200
+@@ -1932,7 +1932,8 @@ corelow.o: corelow.c $(defs_h) $(arch_ut
  	$(inferior_h) $(symtab_h) $(command_h) $(bfd_h) $(target_h) \
  	$(gdbcore_h) $(gdbthread_h) $(regcache_h) $(regset_h) $(symfile_h) \
  	$(exec_h) $(readline_h) $(gdb_assert_h) \
@@ -9,22 +16,23 @@
 +	$(exceptions_h) $(solib_h) $(auxv_h) $(elf_common_h) $(objfiles_h) \
 +	$(gdbcmd_h)
  core-regset.o: core-regset.c $(defs_h) $(command_h) $(gdbcore_h) \
- 	$(inferior_h) $(target_h) $(gdb_string_h) $(gregset_h)
+ 	$(inferior_h) $(target_h) $(regcache_h) $(gdb_string_h) $(gregset_h)
  cp-abi.o: cp-abi.c $(defs_h) $(value_h) $(cp_abi_h) $(command_h) $(gdbcmd_h) \
-@@ -2785,7 +2786,8 @@ symfile.o: symfile.c $(defs_h) $(bfdlink
+@@ -2769,7 +2770,8 @@ symfile.o: symfile.c $(defs_h) $(bfdlink
  	$(gdb_stabs_h) $(gdb_obstack_h) $(completer_h) $(bcache_h) \
  	$(hashtab_h) $(readline_h) $(gdb_assert_h) $(block_h) \
  	$(gdb_string_h) $(gdb_stat_h) $(observer_h) $(exec_h) \
--	$(parser_defs_h) $(elf_bfd_h)
-+	$(parser_defs_h) $(elf_bfd_h) $(gdb_stdint_h) $(libbfd_h) $(elf_bfd_h) \
-+	$(elf_external_h)
+-	$(parser_defs_h) $(varobj_h) $(elf_bfd_h)
++	$(parser_defs_h) $(varobj_h) $(elf_bfd_h) $(gdb_stdint_h) $(libbfd_h) \
++	$(elf_bfd_h) $(elf_external_h)
  symfile-mem.o: symfile-mem.c $(defs_h) $(symtab_h) $(gdbcore_h) \
  	$(objfiles_h) $(exceptions_h) $(gdbcmd_h) $(target_h) $(value_h) \
  	$(symfile_h) $(observer_h) $(auxv_h) $(elf_common_h)
-diff -u -rup gdb-6.6-orig/gdb/corelow.c gdb-6.6/gdb/corelow.c
---- gdb-6.6-orig/gdb/corelow.c	2006-04-18 21:20:06.000000000 +0200
-+++ gdb-6.6/gdb/corelow.c	2007-08-28 15:31:56.000000000 +0200
-@@ -46,6 +46,10 @@
+Index: gdb-6.7/gdb/corelow.c
+===================================================================
+--- gdb-6.7.orig/gdb/corelow.c	2007-09-04 01:06:35.000000000 +0200
++++ gdb-6.7/gdb/corelow.c	2007-10-16 16:41:50.000000000 +0200
+@@ -44,6 +44,10 @@
  #include "gdb_assert.h"
  #include "exceptions.h"
  #include "solib.h"
@@ -35,7 +43,7 @@
  
  
  #ifndef O_LARGEFILE
-@@ -253,6 +257,66 @@ add_to_thread_list (bfd *abfd, asection 
+@@ -251,6 +255,66 @@ add_to_thread_list (bfd *abfd, asection 
      inferior_ptid = pid_to_ptid (thread_id);	/* Yes, make it current */
  }
  
@@ -102,7 +110,7 @@
  /* This routine opens and sets up the core file bfd.  */
  
  static void
-@@ -417,6 +420,15 @@ core_open (char *filename, int from_tty)
+@@ -347,6 +411,15 @@ core_open (char *filename, int from_tty)
    ontop = !push_target (&core_ops);
    discard_cleanups (old_chain);
  
@@ -118,7 +126,7 @@
    /* This is done first, before anything has a chance to query the
       inferior for information such as symbols.  */
    post_create_inferior (&core_ops, from_tty);
-@@ -662,4 +734,13 @@ _initialize_corelow (void)
+@@ -678,4 +751,13 @@ _initialize_corelow (void)
  
    if (!coreops_suppress_target)
      add_target (&core_ops);
@@ -132,16 +140,16 @@
 +			    show_build_id_core_loads,
 +			    &setlist, &showlist);
  }
-diff -u -rup gdb-6.6-orig/gdb/solib-svr4.c gdb-6.6/gdb/solib-svr4.c
---- gdb-6.6-orig/gdb/solib-svr4.c	2007-08-28 15:31:19.000000000 +0200
-+++ gdb-6.6/gdb/solib-svr4.c	2007-08-28 15:34:02.000000000 +0200
-@@ -943,10 +943,35 @@ svr4_current_sos (void)
- 		}
-               else
-                 {
+Index: gdb-6.7/gdb/solib-svr4.c
+===================================================================
+--- gdb-6.7.orig/gdb/solib-svr4.c	2007-10-16 15:43:56.000000000 +0200
++++ gdb-6.7/gdb/solib-svr4.c	2007-10-16 16:44:44.000000000 +0200
+@@ -957,9 +957,35 @@ svr4_current_sos (void)
+ 		free_so (new);
+ 	      else
+ 		{
 -		  strncpy (new->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
 -		  new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
--		  xfree (buffer);
 -		  strcpy (new->so_original_name, new->so_name);
 +		  struct build_id *build_id;
 +
@@ -175,12 +183,13 @@
  		  if (debug_solib)
  		    {
  		      fprintf_unfiltered (gdb_stdlog, 
-diff -u -rup gdb-6.6-orig/gdb/symfile.c gdb-6.6/gdb/symfile.c
---- gdb-6.6-orig/gdb/symfile.c	2007-08-28 15:31:19.000000000 +0200
-+++ gdb-6.6/gdb/symfile.c	2007-08-28 15:36:22.000000000 +0200
-@@ -54,6 +54,9 @@
- #include "exec.h"
+Index: gdb-6.7/gdb/symfile.c
+===================================================================
+--- gdb-6.7.orig/gdb/symfile.c	2007-10-15 21:42:26.000000000 +0200
++++ gdb-6.7/gdb/symfile.c	2007-10-16 16:46:30.000000000 +0200
+@@ -53,6 +53,9 @@
  #include "parser-defs.h"
+ #include "varobj.h"
  #include "elf-bfd.h"
 +#include "gdb_stdint.h"
 +#include "libbfd.h"
@@ -188,7 +197,7 @@
  
  #include <sys/types.h>
  #include <fcntl.h>
-@@ -62,6 +65,7 @@
+@@ -61,6 +64,7 @@
  #include <ctype.h>
  #include <time.h>
  #include <sys/time.h>
@@ -196,7 +205,7 @@
  
  
  int (*deprecated_ui_load_progress_hook) (const char *section, unsigned long num);
-@@ -1120,16 +1124,62 @@ symbol_file_clear (int from_tty)
+@@ -1238,16 +1242,62 @@ symbol_file_clear (int from_tty)
        printf_unfiltered (_("No symbol file now.\n"));
  }
  
@@ -261,7 +270,7 @@
  {
    struct build_id *retval;
  
-@@ -1145,6 +1195,348 @@ build_id_bfd_get (bfd *abfd)
+@@ -1263,6 +1313,348 @@ build_id_bfd_get (bfd *abfd)
    return retval;
  }
  
@@ -610,7 +619,7 @@
  /* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value.  */
  
  static int
-@@ -1159,7 +1551,7 @@ build_id_verify (const char *filename, s
+@@ -1277,7 +1669,7 @@ build_id_verify (const char *filename, s
    if (abfd == NULL)
      return 0;
  
@@ -619,9 +628,9 @@
  
    if (found == NULL)
      warning (_("File \"%s\" has no build-id, file skipped"), filename);
-@@ -1177,8 +1569,9 @@ build_id_verify (const char *filename, s
- 
- static char *debug_file_directory = NULL;
+@@ -1293,8 +1685,9 @@ build_id_verify (const char *filename, s
+   return retval;
+ }
  
 -static char *
 -build_id_to_debug_filename (struct build_id *build_id)
@@ -631,7 +640,7 @@
  {
    char *link, *s, *retval = NULL;
    gdb_byte *data = build_id->data;
-@@ -1186,7 +1579,9 @@ build_id_to_debug_filename (struct build
+@@ -1302,7 +1695,9 @@ build_id_to_debug_filename (struct build
  
    /* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
    link = xmalloc (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1
@@ -642,7 +651,7 @@
    s = link + sprintf (link, "%s/.build-id/", debug_file_directory);
    if (size > 0)
      {
-@@ -1197,12 +1592,14 @@ build_id_to_debug_filename (struct build
+@@ -1313,12 +1708,14 @@ build_id_to_debug_filename (struct build
      *s++ = '/';
    while (size-- > 0)
      s += sprintf (s, "%02x", (unsigned) *data++);
@@ -659,7 +668,7 @@
  
    if (retval != NULL && !build_id_verify (retval, build_id))
      {
-@@ -1210,6 +1607,11 @@ build_id_to_debug_filename (struct build
+@@ -1326,6 +1723,11 @@ build_id_to_debug_filename (struct build
        retval = NULL;
      }
  
@@ -671,7 +680,7 @@
    return retval;
  }
  
-@@ -1305,23 +1707,27 @@ find_separate_debug_file (struct objfile
+@@ -1423,23 +1825,27 @@ find_separate_debug_file (struct objfile
    unsigned long crc32;
    int i;
    struct build_id *build_id;
@@ -704,7 +713,7 @@
      }
  
    basename = get_debug_link_info (objfile, &crc32);
-@@ -1329,7 +1735,10 @@ find_separate_debug_file (struct objfile
+@@ -1447,7 +1853,10 @@ find_separate_debug_file (struct objfile
    if (basename == NULL)
      /* There's no separate debug info, hence there's no way we could
         load it => no warning.  */
@@ -716,7 +725,7 @@
  
    dir = xstrdup (objfile->name);
  
-@@ -1358,6 +1767,7 @@ find_separate_debug_file (struct objfile
+@@ -1476,6 +1885,7 @@ find_separate_debug_file (struct objfile
  
    if (separate_debug_file_exists (debugfile, crc32, objfile->name))
      {
@@ -724,7 +733,7 @@
        xfree (basename);
        xfree (dir);
        return xstrdup (debugfile);
-@@ -1371,6 +1781,7 @@ find_separate_debug_file (struct objfile
+@@ -1489,6 +1899,7 @@ find_separate_debug_file (struct objfile
  
    if (separate_debug_file_exists (debugfile, crc32, objfile->name))
      {
@@ -732,7 +741,7 @@
        xfree (basename);
        xfree (dir);
        return xstrdup (debugfile);
-@@ -1384,11 +1795,20 @@ find_separate_debug_file (struct objfile
+@@ -1502,6 +1913,7 @@ find_separate_debug_file (struct objfile
  
    if (separate_debug_file_exists (debugfile, crc32, objfile->name))
      {
@@ -740,8 +749,18 @@
        xfree (basename);
        xfree (dir);
        return xstrdup (debugfile);
-     }
+@@ -1521,6 +1933,7 @@ find_separate_debug_file (struct objfile
  
+       if (separate_debug_file_exists (debugfile, crc32, objfile->name))
+ 	{
++	  xfree (build_id_filename);
+ 	  xfree (canon_name);
+ 	  xfree (basename);
+ 	  xfree (dir);
+@@ -1528,6 +1941,14 @@ find_separate_debug_file (struct objfile
+ 	}
+     }
+   
 +  if (build_id_filename != NULL)
 +    {
 +      fprintf_unfiltered (gdb_stdlog,
@@ -750,10 +769,10 @@
 +      xfree (build_id_filename);
 +    }
 +
-   xfree (basename);
-   xfree (dir);
-   return NULL;
-@@ -4024,4 +4443,12 @@ the global debug-file directory prepende
+   if (canon_name)
+     xfree (canon_name);
+ 
+@@ -4223,4 +4644,12 @@ the global debug-file directory prepende
  				     NULL,
  				     show_debug_file_directory,
  				     &setlist, &showlist);
@@ -766,12 +785,13 @@
 +			    show_build_id_debug,
 +			    &setdebuglist, &showdebuglist);
  }
-diff -u -rup gdb-6.6-orig/gdb/symfile.h gdb-6.6/gdb/symfile.h
---- gdb-6.6-orig/gdb/symfile.h	2005-12-17 23:34:03.000000000 +0100
-+++ gdb-6.6/gdb/symfile.h	2007-08-28 15:31:56.000000000 +0200
-@@ -322,6 +322,12 @@ extern bfd_byte *symfile_relocate_debug_
- extern void dwarf_build_psymtabs (struct objfile *, int, file_ptr,
- 				  unsigned int, file_ptr, unsigned int);
+Index: gdb-6.7/gdb/symfile.h
+===================================================================
+--- gdb-6.7.orig/gdb/symfile.h	2007-09-24 23:48:05.000000000 +0200
++++ gdb-6.7/gdb/symfile.h	2007-10-16 16:41:50.000000000 +0200
+@@ -353,6 +353,12 @@ extern int symfile_map_offsets_to_segmen
+ struct symfile_segment_data *get_symfile_segment_data (bfd *abfd);
+ void free_symfile_segment_data (struct symfile_segment_data *data);
  
 +/* build-id support.  */
 +struct build_id;

gdb-6.6-bz225783-prelink-path.patch:

Index: gdb-6.6-bz225783-prelink-path.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-bz225783-prelink-path.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.6-bz225783-prelink-path.patch	24 Apr 2007 15:57:25 -0000	1.1
+++ gdb-6.6-bz225783-prelink-path.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -1,9 +1,14 @@
 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225783
 
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
 
---- gdb-6.6/gdb/testsuite/gdb.base/prelink.exp.orig	2006-03-08 19:22:09.000000000 -0500
-+++ gdb-6.6/gdb/testsuite/gdb.base/prelink.exp	2007-04-08 13:22:45.000000000 -0400
-@@ -48,7 +48,7 @@
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/testsuite/gdb.base/prelink.exp
+===================================================================
+--- gdb-6.7.orig/gdb/testsuite/gdb.base/prelink.exp	2007-08-23 20:14:17.000000000 +0200
++++ gdb-6.7/gdb/testsuite/gdb.base/prelink.exp	2007-10-16 16:16:51.000000000 +0200
+@@ -47,7 +47,7 @@ if { [gdb_compile "${srcdir}/${subdir}/$
      return -1
  }
  
@@ -12,13 +17,13 @@
      # Maybe we don't have prelink.
      return -1
  }
-@@ -89,11 +89,11 @@
+@@ -88,11 +88,11 @@ if { $found == 0  } {
      return 0
  }
  
 -if {[catch "system \"prelink -uN ${libfile}\""] != 0} {
 +if {[catch "system \"/usr/sbin/prelink -uN ${libfile}\""] != 0} {
-     untested "${libfile} was not prelinked, maybe system libraries are not prelinked?"
+     untested "${testfile}.so was not prelinked, maybe system libraries are not prelinked?"
      return 0
  }
 -catch "system \"prelink -qNR ${libfile}\""

gdb-6.6-readline-system.patch:

Index: gdb-6.6-readline-system.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-readline-system.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.6-readline-system.patch	5 Jul 2007 12:13:42 -0000	1.1
+++ gdb-6.6-readline-system.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -1,234 +1,12 @@
-diff -u -rup gdb-6.6-orig/configure gdb-6.6/configure
---- gdb-6.6-orig/configure	2006-11-15 00:26:39.000000000 +0100
-+++ gdb-6.6/configure	2007-07-04 21:04:45.000000000 +0200
-@@ -895,14 +895,14 @@ build_tools="build-texinfo build-byacc b
- 
- # these libraries are used by various programs built for the host environment
- #
--host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber"
-+host_libs="intl mmalloc libiberty opcodes bfd tcl tk itcl libgui zlib libcpp libdecnumber"
- 
- # these tools are built for the host environment
- # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
- # know that we are building the simulator.
- # binutils, gas and ld appear in that order because it makes sense to run
- # "make check" in that particular order.
--host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
-+host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
- 
- # libgcj represents the runtime libraries only used by gcj.
- libgcj="target-libffi \
-@@ -1110,7 +1110,7 @@ case "${host}" in
-     noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
-     ;;
-   powerpc-*-beos*)
--    noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
-+    noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu"
-     ;;
- esac
- 
-@@ -1290,7 +1290,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-newlib"
-     case "${host}" in
-       *-*-cygwin*) ;; # keep gdb and readline
--      *) noconfigdirs="$noconfigdirs gdb readline"
-+      *) noconfigdirs="$noconfigdirs gdb"
- 	 ;;
-     esac
-     ;;
-@@ -1408,11 +1408,11 @@ case "${target}" in
-     ;;
-   ia64*-*-elf*)
-     # No gdb support yet.
--    noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
-+    noconfigdirs="$noconfigdirs mmalloc libgui itcl gdb"
-     ;;
-   ia64*-**-hpux*)
-     # No gdb or ld support yet.
--    noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
-+    noconfigdirs="$noconfigdirs ${libgcj} mmalloc libgui itcl gdb ld"
-     ;;
-   i370-*-opened*)
-     ;;
-diff -u -rup gdb-6.6-orig/configure.in gdb-6.6/configure.in
---- gdb-6.6-orig/configure.in	2006-12-18 08:22:58.000000000 +0100
-+++ gdb-6.6/configure.in	2007-07-04 21:04:43.000000000 +0200
-@@ -123,7 +123,7 @@ build_tools="build-texinfo build-byacc b
- 
- # these libraries are used by various programs built for the host environment
- #
--host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber"
-+host_libs="intl mmalloc libiberty opcodes bfd tcl tk itcl libgui zlib libcpp libdecnumber"
- 
- # these tools are built for the host environment
- # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
-@@ -294,7 +294,7 @@ case "${host}" in
-     noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
-     ;;
-   powerpc-*-beos*)
--    noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
-+    noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu"
-     ;;
- esac
- 
-@@ -466,7 +466,7 @@ case "${target}" in
-     noconfigdirs="$noconfigdirs target-newlib"
-     case "${host}" in
-       *-*-cygwin*) ;; # keep gdb and readline
--      *) noconfigdirs="$noconfigdirs gdb readline"
-+      *) noconfigdirs="$noconfigdirs gdb"
- 	 ;;
-     esac
-     ;;
-@@ -584,11 +584,11 @@ case "${target}" in
-     ;;
-   ia64*-*-elf*)
-     # No gdb support yet.
--    noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
-+    noconfigdirs="$noconfigdirs mmalloc libgui itcl gdb"
-     ;;
-   ia64*-**-hpux*)
-     # No gdb or ld support yet.
--    noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
-+    noconfigdirs="$noconfigdirs ${libgcj} mmalloc libgui itcl gdb ld"
-     ;;
-   i370-*-opened*)
-     ;;
-diff -u -rup gdb-6.6-orig/gdb/Makefile.in gdb-6.6/gdb/Makefile.in
---- gdb-6.6-orig/gdb/Makefile.in	2007-07-04 20:50:06.000000000 +0200
-+++ gdb-6.6/gdb/Makefile.in	2007-07-04 20:58:56.000000000 +0200
-@@ -123,10 +123,10 @@ BFD_SRC = $(srcdir)/$(BFD_DIR)
- BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC)
- 
- # Where is the READLINE library?  Typically in ../readline.
--READLINE_DIR = ../readline
--READLINE = $(READLINE_DIR)/libreadline.a
--READLINE_SRC = $(srcdir)/$(READLINE_DIR)
--READLINE_CFLAGS = -I$(READLINE_SRC)/..
-+# `readline' is required on the host.
-+READLINE = -lreadline
-+# Workaround a bug linking `bfd/elf-bfd.h' without `-I../bfd/..'.
-+READLINE_CFLAGS = -I$(srcdir)/..
- 
- # Where is expat?  This will be empty if expat was not available.
- LIBEXPAT = @LIBEXPAT@
-@@ -595,9 +594,9 @@ remote_sim_h =	$(INCLUDE_DIR)/gdb/remote
- demangle_h =    $(INCLUDE_DIR)/demangle.h
- obstack_h =     $(INCLUDE_DIR)/obstack.h
- opcode_m68hc11_h = $(INCLUDE_DIR)/opcode/m68hc11.h
--readline_h = 	$(READLINE_SRC)/readline.h
--readline_tilde_h =	$(READLINE_SRC)/tilde.h
--readline_history_h =	$(READLINE_SRC)/history.h
-+readline_h =
-+readline_tilde_h =
-+readline_history_h =
- frv_desc_h =	$(OPCODES_SRC)/frv-desc.h
- sh_opc_h = 	$(OPCODES_SRC)/sh-opc.h
- gdb_callback_h = $(INCLUDE_DIR)/gdb/callback.h
-diff -u -rup gdb-6.6-orig/gdb/configure gdb-6.6/gdb/configure
---- gdb-6.6-orig/gdb/configure	2007-07-04 20:50:06.000000000 +0200
-+++ gdb-6.6/gdb/configure	2007-07-04 21:03:52.000000000 +0200
-@@ -5697,6 +5697,61 @@ echo "$as_me: error: no termcap library 
-    { (exit 1); exit 1; }; }
- fi
- 
-+# `-lreadline' is provided specifically by `Makefile.in'.
-+saved_LIBS="$LIBS"
-+LIBS="-lreadline $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h.  */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
-+ main()
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+  (eval $ac_link) 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+	 { ac_try='test -z "$ac_c_werror_flag"
-+			 || test ! -s conftest.err'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; } &&
-+	 { ac_try='test -s conftest$ac_exeext'
-+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+  :
-+else
-+  echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+
-+  { { echo "$as_me:$LINENO: error: no readline library found" >&5
-+echo "$as_me: error: no readline library found" >&2;}
-+   { (exit 1); exit 1; }; }
-+
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+      conftest$ac_exeext conftest.$ac_ext
-+LIBS="$saved_LIBS"
-+
- 
-       if test "X$prefix" = "XNONE"; then
-     acl_final_prefix="$ac_default_prefix"
-diff -u -rup gdb-6.6-orig/gdb/configure.ac gdb-6.6/gdb/configure.ac
---- gdb-6.6-orig/gdb/configure.ac	2007-07-04 20:50:06.000000000 +0200
-+++ gdb-6.6/gdb/configure.ac	2007-07-04 21:02:41.000000000 +0200
-@@ -321,6 +321,14 @@ if test "$ac_cv_search_tgetent" = no; th
-   AC_MSG_ERROR([no termcap library found])
- fi
- 
-+# `-lreadline' is provided specifically by `Makefile.in'.
-+saved_LIBS="$LIBS"
-+LIBS="-lreadline $LIBS"
-+AC_TRY_LINK(,[ main() ],,[
-+  AC_MSG_ERROR([no readline library found])
-+])
-+LIBS="$saved_LIBS"
-+
- AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"],
- 		      [XML_Parser p = XML_ParserCreate (0);])
- if test "$HAVE_LIBEXPAT" != yes; then
-diff -u -ru gdb-6.6-orig/gdb/doc/Makefile.in gdb-6.6/gdb/doc/Makefile.in
---- gdb-6.6-orig/gdb/doc/Makefile.in	2006-05-05 20:26:11.000000000 +0200
-+++ gdb-6.6/gdb/doc/Makefile.in	2007-07-05 11:58:30.000000000 +0200
-@@ -58,13 +58,14 @@
- 
- # Where is the source dir for the READLINE library doc?  
- # Traditionally readline is in .. or .
--READLINE_DIR = ${gdbdir}/../readline/doc
-+# `readline' is required on the host.
-+#READLINE_DIR = ${gdbdir}/../readline/doc
- 
- # The GDB/MI docs come from a sibling directory ../mi
- GDBMI_DIR = ${gdbdir}/mi
- 
- SET_TEXINPUTS = \
--   TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(READLINE_DIR):$(GDBMI_DIR):$$TEXINPUTS
-+   TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(GDBMI_DIR):$$TEXINPUTS
- 
- # Files which should be generated via 'info' and installed by 'install-info'
- INFO_DEPS = gdb.info gdbint.info stabs.info annotate.info
-@@ -100,9 +101,7 @@
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/doc/Makefile.in
+===================================================================
+--- gdb-6.7.orig/gdb/doc/Makefile.in	2007-07-26 12:34:00.000000000 +0200
++++ gdb-6.7/gdb/doc/Makefile.in	2007-10-16 16:31:08.000000000 +0200
+@@ -109,9 +109,7 @@ DVIPS = dvips
  GDB_DOC_SOURCE_INCLUDES = \
  	$(srcdir)/fdl.texi \
  	$(srcdir)/gpl.texi \
@@ -239,39 +17,22 @@
  GDB_DOC_BUILD_INCLUDES = \
  	gdb-cfg.texi \
  	GDBvn.texi
-@@ -299,7 +298,7 @@
+Index: gdb-6.7/gdb/doc/gdb.texinfo
+===================================================================
+--- gdb-6.7.orig/gdb/doc/gdb.texinfo	2007-10-16 16:19:19.000000000 +0200
++++ gdb-6.7/gdb/doc/gdb.texinfo	2007-10-16 16:32:10.000000000 +0200
+@@ -158,8 +158,8 @@ software in general.  We will miss him.
  
- # GDB MANUAL: info file
- gdb.info: ${GDB_DOC_FILES}
--	$(MAKEINFO) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) \
-+	$(MAKEINFO) -I ${GDBMI_DIR} -I $(srcdir) \
- 		-o gdb.info $(srcdir)/gdb.texinfo
- 
- # GDB MANUAL: roff translations
-@@ -375,7 +374,7 @@
- # GDB MANUAL: HTML file
- 
- gdb_toc.html: ${GDB_DOC_FILES}
--	$(MAKEHTML) $(MAKEHTMLFLAGS) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
-+	$(MAKEHTML) $(MAKEHTMLFLAGS) -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo
- 
- # Clean these up before each run.  Avoids a catch 22 with not being
- # able to re-generate these files (to fix a corruption) because these
-diff -u -ru gdb-6.6-orig/gdb/doc/gdb.texinfo gdb-6.6/gdb/doc/gdb.texinfo
---- gdb-6.6-orig/gdb/doc/gdb.texinfo	2007-07-04 20:50:06.000000000 +0200
-+++ gdb-6.6/gdb/doc/gdb.texinfo	2007-07-05 13:07:55.000000000 +0200
-@@ -153,8 +153,8 @@
  * GDB Bugs::                    Reporting bugs in @value{GDBN}
- * Formatting Documentation::    How to format and print @value{GDBN} documentation
  
 -* Command Line Editing::        Command Line Editing
 -* Using History Interactively:: Using History Interactively
 +* Command Line Editing: (rluserman).       Command Line Editing
 +* Using History Interactively: (history).  Using History Interactively
+ * Formatting Documentation::    How to format and print @value{GDBN} documentation
  * Installing GDB::              Installing GDB
  * Maintenance Commands::        Maintenance Commands
- * Remote Protocol::             GDB Remote Serial Protocol
-@@ -15728,7 +15728,7 @@
+@@ -15533,7 +15533,7 @@ Disable command line editing.
  Show whether command line editing is enabled.
  @end table
  
@@ -280,7 +41,7 @@
  interface.  Users unfamiliar with @sc{gnu} Emacs or @code{vi} are
  encouraged to read that chapter.
  
-@@ -15743,7 +15743,8 @@
+@@ -15548,7 +15548,8 @@ history facility.
  
  @value{GDBN} uses the @sc{gnu} History library, a part of the Readline
  package, to provide the history facility.  @xref{Using History
@@ -289,8 +50,8 @@
 +of the History library.
  
  To issue a command to @value{GDBN} without affecting certain aspects of
- the state which is seen by users, prefix it with @samp{server }.  This
-@@ -15794,7 +15795,7 @@
+ the state which is seen by users, prefix it with @samp{server }
+@@ -15600,7 +15601,7 @@ This defaults to the value of the enviro
  @end table
  
  History expansion assigns special meaning to the character @kbd{!}.
@@ -299,16 +60,17 @@
  
  @cindex history expansion, turn on/off
  Since @kbd{!} is also the logical not operator in C, history expansion
-@@ -16867,7 +16868,7 @@
+@@ -16660,7 +16661,8 @@ Indicates the current program counter ad
  @cindex TUI key bindings
  
  The TUI installs several key bindings in the readline keymaps
--(@pxref{Command Line Editing}).
+-(@pxref{Command Line Editing}).  The following key bindings
 +(@pxref{Command Line Editing, , , rluserman, GNU Readline Library}).
- They allow to leave or enter in the TUI mode or they operate
- directly on the TUI layout and windows.  The TUI also provides
- a @emph{SingleKey} keymap which binds several keys directly to
-@@ -21934,15 +21935,6 @@
++The following key bindings
+ are installed for both TUI mode and the @value{GDBN} standard mode.
+ 
+ @table @kbd
+@@ -21937,15 +21939,6 @@ Such guesses are usually wrong.  Even we
  things without first using the debugger to find the facts.
  @end itemize
  
@@ -324,7 +86,7 @@
  
  @node Formatting Documentation
  @appendix Formatting Documentation
-@@ -22111,9 +22103,6 @@
+@@ -22115,9 +22108,6 @@ source for the @samp{-liberty} free soft
  @item gdb- at value{GDBVN}/opcodes
  source for the library of opcode tables and disassemblers
  
@@ -334,7 +96,7 @@
  @item gdb- at value{GDBVN}/glob
  source for the @sc{gnu} filename pattern-matching subroutine
  
-@@ -22145,7 +22134,7 @@
+@@ -22149,7 +22139,7 @@ where @var{host} is an identifier such a
  correct value by examining your system.)
  
  Running @samp{configure @var{host}} and then running @code{make} builds the
@@ -343,9 +105,9 @@
  libraries, then @code{gdb} itself.  The configured source files, and the
  binaries, are left in the corresponding source directories.
  
-@@ -22170,7 +22159,7 @@
+@@ -22175,7 +22165,7 @@ source tree, the @file{gdb- at var{version-
  that subdirectory.  That is usually not what you want.  In particular,
- if you run the first @code{configure} from the @file{gdb} subdirectory
+ if you run the first @file{configure} from the @file{gdb} subdirectory
  of the @file{gdb- at var{version-number}} directory, you will omit the
 -configuration of @file{bfd}, @file{readline}, and other sibling
 +configuration of @file{bfd}, and other sibling

gdb-6.6-vdso-i386-on-amd64-warning.patch:

Index: gdb-6.6-vdso-i386-on-amd64-warning.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-6.6-vdso-i386-on-amd64-warning.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.6-vdso-i386-on-amd64-warning.patch	8 Oct 2007 19:12:38 -0000	1.1
+++ gdb-6.6-vdso-i386-on-amd64-warning.patch	1 Nov 2007 20:24:20 -0000	1.2
@@ -1,12 +1,18 @@
 Fix i386-on-x86_64 debugging giving the warning:
 	warning: Lowest section in system-supplied DSO at 0xffffe000 is .hash at ffffe0b4
 
-[ Backport for RH GDB-6.6. ]
+[base]
 
---- gdb-6.6/gdb/symfile.c	2007-10-08 19:52:06.000000000 +0200
-+++ gdb-6.6/gdb/symfile.c	2007-10-08 19:49:27.000000000 +0200
-@@ -597,6 +597,37 @@ default_symfile_offsets (struct objfile 
-   init_objfile_sect_indices (objfile);
+2007-10-16  Jan Kratochvil  <jan.kratochvil at redhat.com>
+
+	Port to GDB-6.7.
+
+Index: gdb-6.7/gdb/symfile.c
+===================================================================
+--- gdb-6.7.orig/gdb/symfile.c	2007-10-16 16:46:30.000000000 +0200
++++ gdb-6.7/gdb/symfile.c	2007-10-16 20:08:42.000000000 +0200
+@@ -717,6 +717,38 @@ default_symfile_segments (bfd *abfd)
+   return data;
  }
  
 +/* Find lowest loadable section to be used as starting point for continguous
@@ -40,10 +46,11 @@
 +  else
 +    return 0;
 +}
- 
++
  /* Process a symbol file, as either the main file or as a dynamically
     loaded file.
-@@ -696,32 +727,11 @@ syms_from_objfile (struct objfile *objfi
+ 
+@@ -815,32 +847,11 @@ syms_from_objfile (struct objfile *objfi
       happens for the PA64 port.  */
    if (/*!mainline &&*/ addrs && addrs->other[0].name)
      {
@@ -78,30 +85,38 @@
        /* Calculate offsets for the loadable sections.
   	 FIXME! Sections must be in order of increasing loadable section
   	 so that contiguous sections can use the lower-offset!!!
-@@ -743,6 +753,7 @@ syms_from_objfile (struct objfile *objfi
+@@ -862,6 +873,7 @@ syms_from_objfile (struct objfile *objfi
                      addrs->other[i].addr
                        -= bfd_section_vma (objfile->obfd, sect);
                      lower_offset = addrs->other[i].addr;
-+		    lower_offset_set = 1;
++                    lower_offset_set = 1;
                      /* This is the index used by BFD. */
                      addrs->other[i].sectindex = sect->index ;
                    }
-@@ -755,7 +766,17 @@ syms_from_objfile (struct objfile *objfi
+@@ -874,7 +886,17 @@ syms_from_objfile (struct objfile *objfi
                    }
                }
              else
 -              addrs->other[i].addr = lower_offset;
-+	      {
-+		/* Delay finding LOWER_OFFSET only if it is needed.  Otherwise
-+		   we would print a warning to detect a values never used.  */
-+		if (!lower_offset_set)
-+		  {
-+		    lower_offset = find_lower_offset (objfile);
-+		    lower_offset_set = 1;
-+		  }
++              {
++                /* Delay finding LOWER_OFFSET only if it is needed.  Otherwise
++                   we would print a warning to detect a values never used.  */
++                if (!lower_offset_set)
++                  {
++                    lower_offset = find_lower_offset (objfile);
++                    lower_offset_set = 1;
++                  }
 +
-+		addrs->other[i].addr = lower_offset;
-+	      }
++                addrs->other[i].addr = lower_offset;
++              }
            }
      }
  
+@@ -1174,7 +1196,6 @@ symbol_file_add_from_bfd (bfd *abfd, int
+                                                 mainline, flags);
+ }
+ 
+-
+ /* Process a symbol file, as either the main file or as a dynamically
+    loaded file.  See symbol_file_add_with_addrs_or_offsets's comments
+    for details.  */


Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.254
retrieving revision 1.255
diff -u -r1.254 -r1.255
--- gdb.spec	19 Oct 2007 00:12:58 -0000	1.254
+++ gdb.spec	1 Nov 2007 20:24:20 -0000	1.255
@@ -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.6
+Version: 6.7
 
 # The release always contains a leading reserved number, start it at 1.
-Release: 37%{?dist}
+Release: 1%{?dist}
 
 License: GPL
 Group: Development/Debuggers
-Source: ftp://ftp.gnu.org/gnu/gdb/gdb-6.6.tar.bz2
+Source: ftp://ftp.gnu.org/gnu/gdb/gdb-6.7.tar.bz2
 Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 URL: http://gnu.org/software/gdb/
 
 # For our convenience
-%define gdb_src gdb-6.6
+%define gdb_src gdb-%{version}
 %define gdb_build build-%{_target_platform}
 
 # Make sure we get rid of the old package gdb64, now that we have unified
@@ -149,9 +149,6 @@
 # Fix printing of inherited members
 Patch148: gdb-6.3-inheritance-20050324.patch
 
-# Add vsyscall page support for ia64.
-Patch149: gdb-6.3-ia64-vsyscall-20050330.patch
-
 # Print a warning when the separate debug info's CRC doesn't match.
 Patch150: gdb-6.3-test-sepcrc-20050402.patch
 Patch151: gdb-6.3-sepcrc-20050402.patch
@@ -225,9 +222,6 @@
 # CVE-2006-4146
 Patch190: gdb-6.5-dwarf-stack-overflow.patch
 
-# Fix gdb printf command argument using "%p" (BZ 205551).
-Patch191: gdb-6.5-bz205551-printf-p.patch
-
 # Support TLS symbols (+`errno' suggestion if no pthread is found) (BZ 185337).
 # FIXME: Still to be updated.
 Patch194: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
@@ -252,12 +246,6 @@
 # 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.
-Patch206: gdb-6.5-relativedebug.patch
-
-# Fix "??" resolving of symbols from overlapping functions (nanosleep(3)).
-Patch207: gdb-6.5-symbols-overlap.patch
-
 # Improved testsuite results by the testsuite provided by the courtesy of BEA.
 Patch208: gdb-6.5-BEA-testsuite.patch
 
@@ -265,10 +253,6 @@
 Patch209: gdb-6.5-readline-long-line-crash.patch
 Patch213: gdb-6.5-readline-long-line-crash-test.patch
 
-# Fix readline history for input mode commands like `command' (BZ 215816).
-Patch212: gdb-6.5-bz215816-readline-from-callback.patch
-Patch219: gdb-6.5-bz215816-readline-from-callback-test.patch
-
 # Fix bogus 0x0 unwind of the thread's topmost function clone(3) (BZ 216711).
 Patch214: gdb-6.5-bz216711-clone-is-outermost.patch
 
@@ -279,26 +263,17 @@
 # Fix lockup on trampoline vs. its function lookup; unreproducible (BZ 218379).
 Patch217: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
 
-# Fix unwinding crash on older gcj(1) code (extended CFI support) (BZ 165025).
-Patch221: gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch
-Patch222: gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch
-
 # Find symbols properly at their original (included) file (BZ 109921).
-Patch224: gdb-6.5-bz109921-DW_AT_decl_file-fix.patch
 Patch225: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
 
 # Update PPC unwinding patches to their upstream variants (BZ 140532).
-Patch226: gdb-6.3-bz140532-ppc-unwinding-fix.patch
 Patch229: gdb-6.3-bz140532-ppc-unwinding-test.patch
 
-# 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 fixups.
-Patch232: gdb-6.6-upstream.patch
+# Backported post gdb-6.7 release fixups.
+Patch232: gdb-6.7-upstream.patch
 
 # Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
 Patch234: gdb-6.6-bz230000-power6-disassembly-test.patch
@@ -309,21 +284,12 @@
 # Suggest SELinux permissions problem; no assertion failure anymore (BZ 232371).
 Patch236: gdb-6.6-bz232371-selinux-thread-error.patch
 
-# Use definition of an empty structure as it is not an opaque type (BZ 233716).
-Patch238: gdb-6.6-bz233716-empty-structure-override.patch
-
 # Fix prelink(8) testcase for non-root $PATH missing `/usr/sbin' (BZ 225783).
 Patch240: gdb-6.6-bz225783-prelink-path.patch
 
 # Fix debugging GDB itself - the compiled in source files paths (BZ 225783).
 Patch241: gdb-6.6-bz225783-gdb-debuginfo-paths.patch
 
-# Fix harmless GCORE stack buffer overflow, by _FORTIFY_SOURCE=2 (BZ 238285).
-Patch243: gdb-6.6-bz238285-gcore-strings-overflow.patch
-
-# Use the runtime variant of `libunwind-ARCH.so.7' rather than the `.so' one.
-Patch244: gdb-6.6-libunwind-major-version.patch
-
 # Allow running `/usr/bin/gcore' with provided but inaccessible tty (BZ 229517).
 Patch245: gdb-6.6-bz229517-gcore-without-terminal.patch
 
@@ -333,9 +299,6 @@
 # Notify user of a child forked process being detached (BZ 235197).
 Patch247: gdb-6.6-bz234468-fork-detach-info.patch
 
-# Fix `gcore' command for 32bit PPC inferiors on 64bit PPC hosts (BZ 232015).
-Patch248: gdb-6.6-bz232015-gcore-ppc-on-ppc64.patch
-
 # New testcase for gcore of 32bit inferiors on 64bit hosts.
 Patch249: gdb-6.6-gcore32-test.patch
 
@@ -350,7 +313,6 @@
 Patch256: gdb-6.6-bz233852-attach-signalled.patch
 
 # Support for stepping over PPC atomic instruction sequences (BZ 237572).
-Patch257: gdb-6.6-bz237572-ppc-atomic-sequence-upstream.patch
 Patch258: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
 
 # Link with libreadline provided by the operating system.
@@ -363,15 +325,7 @@
 Patch265: gdb-6.6-bz247354-leader-exit-fix.patch
 Patch266: gdb-6.6-bz247354-leader-exit-test.patch
 
-# Fixed compatibility with Rawhide kernel fs.binfmt_elf.core_dump_elf_headers=1.
-Patch269: gdb-6.6-bfd-core-dump_elf_headers.patch
-
-# Fixed compatibility with the Rawhide glibc open(2) syscall sanity checking.
-Patch272: gdb-6.6-glibc-open-fcntl2-compat.patch
-
-# New fast verification whether the .debug file matches its peer (build-id).
 # New locating of the matching binaries from the pure core file (build-id).
-Patch273: gdb-6.6-buildid-verify.patch
 Patch274: gdb-6.6-buildid-locate.patch
 
 # Fixed the kernel 8KB VDSO loading (producing `no loadable sections found').
@@ -386,6 +340,12 @@
 # Fix hardware watchpoints after inferior forks-off some process.
 Patch280: gdb-6.6-multifork-debugreg-for-i386-and-x86_64.patch
 
+# Fix displaying of numeric char arrays as strings (BZ 224128).
+Patch282: gdb-6.7-charsign-test.patch
+
+# Fix rereading of the main executable on its change.
+Patch283: gdb-6.7-reread-exec_bfd.patch
+
 BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext
 BuildRequires: flex bison sharutils expat-devel
 Requires: readline
@@ -461,7 +421,6 @@
 %patch145 -p1
 %patch147 -p1
 %patch148 -p1
-%patch149 -p1
 %patch150 -p1
 %patch151 -p1
 %patch153 -p1
@@ -486,65 +445,49 @@
 %patch187 -p1
 %patch188 -p1
 %patch190 -p1
-%patch191 -p1
 %patch194 -p1
 %patch195 -p1
 %patch196 -p1
 %patch199 -p1
 %patch200 -p1
 %patch201 -p1
-%patch206 -p1
-%patch207 -p1
 %patch208 -p1
 %patch209 -p1
 %patch211 -p1
-%patch212 -p1
 %patch213 -p1
 %patch214 -p1
 %patch215 -p1
 %patch216 -p1
 %patch217 -p1
-%patch219 -p1
-%patch221 -p1
-%patch222 -p1
-%patch224 -p1
 %patch225 -p1
-%patch226 -p1
 %patch229 -p1
-%patch230 -p1
 %patch231 -p1
 %patch232 -p1
 %patch234 -p1
 %patch235 -p1
 %patch236 -p1
-%patch238 -p1
 %patch240 -p1
 %patch241 -p1
-%patch243 -p1
-%patch244 -p1
 %patch245 -p1
 %patch246 -p1
 %patch247 -p1
-%patch248 -p1
 %patch249 -p1
 %patch251 -p1
 %patch254 -p1
 %patch256 -p1
-%patch257 -p1
 %patch258 -p1
 %patch260 -p1
 %patch261 -p1
 %patch263 -p1
 %patch265 -p1
 %patch266 -p1
-%patch269 -p1
-%patch272 -p1
-%patch273 -p1
 %patch274 -p1
 %patch276 -p1
 %patch277 -p1
 %patch278 -p1
 %patch280 -p1
+%patch282 -p1
+%patch283 -p1
 
 # Change the version that gets printed at GDB startup, so it is RedHat
 # specific.
@@ -559,9 +502,6 @@
 rm -f gdb/doc/*.info
 rm -f gdb/doc/*.info-*
 
-# Force the use of system readline includes as we link with the system readline.
-rm -rf readline
-
 %build
 
 # Identify the build directory with the version of gdb as well as the
@@ -595,6 +535,7 @@
 	$enable_build_warnings				\
 	--with-separate-debug-dir=/usr/lib/debug	\
 	--disable-rpath					\
+	--with-system-readline				\
 %ifarch ia64
 	--with-libunwind				\
 %else
@@ -701,6 +642,10 @@
 # don't include the files in include, they are part of binutils
 
 %changelog
+* Thu Nov  1 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.7-1
+- Upgrade to GDB 6.7.  Drop redundant patches, forward-port remaining ones.
+- Fix rereading of the main executable on its change.
+
 * Fri Oct 19 2007 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.6-37
 - Fix hiding unexpected breakpoints on intentional step/next commands.
 - Fix s390 compilation warning/failure due to a wrongly sized type-cast.


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/sources,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- sources	21 Jan 2007 01:53:01 -0000	1.21
+++ sources	1 Nov 2007 20:24:20 -0000	1.22
@@ -1 +1 @@
-a4df41d28dd514d64e8ccbfe125fd9a6  gdb-6.6.tar.bz2
+d6e7c0ad7654bc91a3a457fabb6ad6c6  gdb-6.7.tar.bz2


--- gdb-6.3-bz140532-ppc-unwinding-fix.patch DELETED ---


--- gdb-6.3-ia64-vsyscall-20050330.patch DELETED ---


--- gdb-6.5-bz109921-DW_AT_decl_file-fix.patch DELETED ---


--- gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch DELETED ---


--- gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch DELETED ---


--- gdb-6.5-bz205551-printf-p.patch DELETED ---


--- gdb-6.5-bz215816-readline-from-callback-test.patch DELETED ---


--- gdb-6.5-bz215816-readline-from-callback.patch DELETED ---


--- gdb-6.5-relativedebug.patch DELETED ---


--- gdb-6.5-symbols-overlap.patch DELETED ---


--- gdb-6.5-testsuite-log.patch DELETED ---


--- gdb-6.6-bfd-core-dump_elf_headers.patch DELETED ---


--- gdb-6.6-buildid-verify.patch DELETED ---


--- gdb-6.6-bz232015-gcore-ppc-on-ppc64.patch DELETED ---


--- gdb-6.6-bz233716-empty-structure-override.patch DELETED ---


--- gdb-6.6-bz237572-ppc-atomic-sequence-upstream.patch DELETED ---


--- gdb-6.6-bz238285-gcore-strings-overflow.patch DELETED ---


--- gdb-6.6-glibc-open-fcntl2-compat.patch DELETED ---


--- gdb-6.6-libunwind-major-version.patch DELETED ---


--- gdb-6.6-upstream.patch DELETED ---




More information about the fedora-extras-commits mailing list