rpms/gdb/F-12 gdb-empty-namespace.patch, NONE, 1.1 gdb-ppc-hw-watchpoint-twice.patch, NONE, 1.1 gdb-rhel5-compat.patch, NONE, 1.1 gdb-rhel5-gcc44.patch, NONE, 1.1 gdb-7.0-upstream.patch, 1.3, 1.4 gdb.spec, 1.403, 1.404 gdb-rhel5-fortran44.patch, 1.1, NONE

Jan Kratochvil jkratoch at fedoraproject.org
Mon Dec 21 11:26:49 UTC 2009


Author: jkratoch

Update of /cvs/pkgs/rpms/gdb/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3787

Modified Files:
	gdb-7.0-upstream.patch gdb.spec 
Added Files:
	gdb-empty-namespace.patch gdb-ppc-hw-watchpoint-twice.patch 
	gdb-rhel5-compat.patch gdb-rhel5-gcc44.patch 
Removed Files:
	gdb-rhel5-fortran44.patch 
Log Message:
* Mon Dec 21 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0-12.fc12
- Workaround build on native ppc64 host.
- More RHEL-5 compatibility updates.
  - Disable warning messages new for gdb-6.8+ for RHEL-5 backward compatibility.
  - Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).
  - Serialize the testsuite output to keep the order for regression checks.
  - Re-enable python for all non-ppc* arches.
  - More gcc44 stack exceptions when running the testsuite on RHEL-5.
- Fix backward compatibility with G++ 4.1 namespaces "::".
- Fix regression on re-setting the single ppc watchpoint slot.
- Update snapshot of FSF gdb-7.0.x branch.
  - Backport fix of dcache invalidation locking up GDB on ppc64 targets.


gdb-empty-namespace.patch:
 b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S   |  108 +++++++++++++++++++++
 b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp |   43 ++++++++
 gdb/dwarf2read.c                                   |   14 ++
 3 files changed, 163 insertions(+), 2 deletions(-)

--- NEW FILE gdb-empty-namespace.patch ---
gdb/
2009-12-20  Jan Kratochvil  <jan.kratochvil at redhat.com>

	Fix compatibility with G++-4.1.
	* dwarf2read.c (partial_die_parent_scope): New variable PARENT_NAME.
	Ignore parent namespaces with name "::".
	(physname_prefix_1): Ignore namespaces with name "::".

gdb/testsuite/
2009-12-20  Jan Kratochvil  <jan.kratochvil at redhat.com>

	* gdb.dwarf2/dw2-empty-namespace.exp, gdb.dwarf2/dw2-empty-namespace.S:
	New.

--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2355,11 +2355,18 @@ partial_die_parent_scope (struct partial_die_info *pdi,
       || parent->tag == DW_TAG_interface_type
       || parent->tag == DW_TAG_union_type)
     {
+      char *parent_name = parent->name;
+
+      /* G++ 4.1 produced DW_TAG_namespace with DW_AT_name "::".  */
+      if (parent->tag == DW_TAG_namespace && parent_name != NULL
+          && strcmp (parent_name, "::") == 0)
+	parent_name = NULL;
+
       if (grandparent_scope == NULL)
-	parent->scope = parent->name;
+	parent->scope = parent_name;
       else
 	parent->scope = typename_concat (&cu->comp_unit_obstack, grandparent_scope,
-					 parent->name, cu);
+					 parent_name, cu);
     }
   else if (parent->tag == DW_TAG_enumeration_type)
     /* Enumerators should not get the name of the enumeration as a prefix.  */
@@ -9008,6 +9015,9 @@ physname_prefix_1 (struct ui_file *buf, struct die_info *die,
 	  name = dwarf2_name (die, cu);
 	  if (name == NULL)
 	    name = "(anonymous namespace)";
+	  /* G++ 4.1 produced DW_TAG_namespace with DW_AT_name "::".  */
+	  else if (strcmp (name, "::") == 0)
+	    name = NULL;
 	  break;
 
 	case DW_TAG_class_type:
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
@@ -0,0 +1,108 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2009 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 3 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, see <http://www.gnu.org/licenses/>.  */
+
+/* Test G++ 4.1 producing DW_TAG_namespace with DW_AT_name "::".  */
+
+	.data
+var:	.4byte	1
+
+	.section .debug_info
+.Lcu1_begin:
+	/* CU header */
+	.4byte	.Lcu1_end - .Lcu1_start		/* Length of Compilation Unit */
+.Lcu1_start:
+	.2byte	2				/* DWARF Version */
+	.4byte	.Labbrev1_begin			/* Offset into abbrev section */
+	.byte	4				/* Pointer size */
+
+	/* CU die */
+	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
+	.ascii	"file1.txt\0"			/* DW_AT_name */
+	.ascii	"GNU C 3.3.3\0"			/* DW_AT_producer */
+	.byte	4				/* DW_LANG_C_plus_plus (C++) */
+
+.Ltype_int:
+	.uleb128	2			/* Abbrev: DW_TAG_base_type */
+	.ascii		"int\0"			/* DW_AT_name */
+	.byte		4			/* DW_AT_byte_size */
+	.byte		5			/* DW_AT_encoding */
+
+	.uleb128	3			/* Abbrev: DW_TAG_namespace */
+	.ascii		"::\0"			/* DW_AT_name */
+
+	.uleb128	7			/* Abbrev: DW_TAG_variable (location) */
+	.ascii		"var\0"			/* DW_AT_name */
+	.byte		2f - 1f			/* DW_AT_location */
+1:	.byte		3			/*   DW_OP_addr */
+	.4byte		var			/*   <addr> */
+2:	.4byte		.Ltype_int-.Lcu1_begin	/* DW_AT_type */
+
+	.byte		0			/* End of children of DW_TAG_namespace */
+
+	.byte		0			/* End of children of CU */
+
+.Lcu1_end:
+
+/* Abbrev table */
+	.section .debug_abbrev
+.Labbrev1_begin:
+	.uleb128	1			/* Abbrev code */
+	.uleb128	0x11			/* DW_TAG_compile_unit */
+	.byte		1			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x25			/* DW_AT_producer */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x13			/* DW_AT_language */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	2			/* Abbrev code */
+	.uleb128	0x24			/* DW_TAG_base_type */
+	.byte		0			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0xb			/* DW_AT_byte_size */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.uleb128	0x3e			/* DW_AT_encoding */
+	.uleb128	0xb			/* DW_FORM_data1 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	3			/* Abbrev code */
+	.uleb128	0x39			/* DW_TAG_namespace */
+	.byte		1			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.uleb128	7			/* Abbrev code (location) */
+	.uleb128	0x34			/* DW_TAG_variable */
+	.byte		0			/* has_children */
+	.uleb128	0x3			/* DW_AT_name */
+	.uleb128	0x8			/* DW_FORM_string */
+	.uleb128	0x2			/* DW_AT_location */
+	.uleb128	0xa			/* DW_FORM_block1 */
+	.uleb128	0x49			/* DW_AT_type */
+	.uleb128	0x13			/* DW_FORM_ref4 */
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
+
+	.byte		0x0			/* Terminator */
+	.byte		0x0			/* Terminator */
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
@@ -0,0 +1,43 @@
+# Copyright 2009 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 3 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, see <http://www.gnu.org/licenses/>.
+
+# Test G++ 4.1 producing DW_TAG_namespace with DW_AT_name "::".
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+# For now pick a sampling of likely targets.
+if {![istarget *-*-linux*]
+    && ![istarget *-*-gnu*]
+    && ![istarget *-*-elf*]
+    && ![istarget *-*-openbsd*]
+    && ![istarget arm-*-eabi*]
+    && ![istarget powerpc-*-eabi*]} {
+    return 0  
+}
+
+set testfile "dw2-empty-namespace"
+set srcfile ${testfile}.S
+set executable ${testfile}.x
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objdir}/${subdir}/${executable}" object {nodebug}] != "" } {
+    return -1
+}
+
+clean_restart $executable
+
+# `p var' below can work without identified DWARF DIE just based on its ELF symbol.
+# Catch it here as `type = <data variable, no debug info>'.
+gdb_test "ptype var" "type = int"
+
+gdb_test "p var" " = 1"

gdb-ppc-hw-watchpoint-twice.patch:
 breakpoint.c |    3 +++
 1 file changed, 3 insertions(+)

--- NEW FILE gdb-ppc-hw-watchpoint-twice.patch ---
pcc regression from:
http://sourceware.org/ml/gdb-patches/2008-12/msg00143.html

gdb/
2009-12-21  Jan Kratochvil  <jan.kratochvil at redhat.com>

	* breakpoint.c (update_watchpoint): Set B->TYPE to bp_watchpoint before
	calling hw_watchpoint_used_count.

--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1152,6 +1152,9 @@ update_watchpoint (struct breakpoint *b, int reparse)
 	  {
 	    int i, mem_cnt, other_type_used;
 
+	    /* Do not count with B twice below.  */
+	    b->type = bp_watchpoint;
+
 	    i = hw_watchpoint_used_count (bp_hardware_watchpoint,
 					  &other_type_used);
 	    mem_cnt = can_use_hardware_watchpoint (val_chain);

gdb-rhel5-compat.patch:
 gdb/linux-nat.c |   18 ++++++++++++++++--
 symfile.c       |    2 ++
 2 files changed, 18 insertions(+), 2 deletions(-)

--- NEW FILE gdb-rhel5-compat.patch ---
gdb/linux-nat.c:
- Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).

--- gdb-6.8/gdb-orig/symfile.c	2008-08-21 00:06:50.000000000 +0200
+++ gdb-6.8/gdb/symfile.c	2008-08-21 22:31:00.000000000 +0200
@@ -1456,8 +1456,10 @@ find_separate_debug_file (struct objfile
       /* Prevent looping on a stripped .debug file.  */
       if (build_id_name != NULL && strcmp (build_id_name, objfile->name) == 0)
         {
+#if 0 /* RHEL-5 backward behavior compatibility.  */
 	  warning (_("\"%s\": separate debug info file has no debug info"),
 		   build_id_name);
+#endif
 	  xfree (build_id_name);
 	}
       else if (build_id_name != NULL)
--- gdb-7.0-orig/gdb/linux-nat.c	2009-12-19 20:53:46.000000000 +0100
+++ gdb-7.0/gdb/linux-nat.c	2009-12-19 20:55:02.000000000 +0100
@@ -1604,8 +1604,22 @@ GPT: lwp %s had signal %s, but it is in 
 	*status = lp->status;
     }
 
-  if (*status == 0 && GET_PID (lp->ptid) == pid_was_stopped)
-    *status = W_STOPCODE (SIGSTOP);
+  /* Workaround RHEL-5 kernel which has unreliable PTRACE_DETACH, SIGSTOP (that
+     many TIDs are left unstopped).  See RH Bug 496732.  */
+  if (GET_PID (lp->ptid) == pid_was_stopped)
+    {
+      int err;
+
+      errno = 0;
+      err = kill_lwp (GET_LWP (lp->ptid), SIGSTOP);
+      if (debug_linux_nat)
+	{
+	  fprintf_unfiltered (gdb_stdlog,
+			      "SC:  lwp kill %d %s\n",
+			      err,
+			      errno ? safe_strerror (errno) : "ERRNO-OK");
+	}
+    }
 
   return 0;
 }

gdb-rhel5-gcc44.patch:
 ./gdb/testsuite/gdb.fortran/common-block.exp    |   20 +++++++++
 ./gdb/testsuite/gdb.fortran/derived-type.exp    |   20 +++++++++
 ./gdb/testsuite/gdb.fortran/dwarf-stride.exp    |   20 +++++++++
 ./gdb/testsuite/gdb.fortran/dynamic.exp         |   20 +++++++++
 ./gdb/testsuite/gdb.fortran/library-module.exp  |   26 ++++++++++--
 ./gdb/testsuite/gdb.fortran/module.exp          |   20 +++++++++
 ./gdb/testsuite/gdb.fortran/string.exp          |   20 +++++++++
 ./gdb/testsuite/gdb.fortran/subarray.exp        |   20 +++++++++
 ./gdb/testsuite/gdb.threads/tls-sepdebug.exp    |   20 +++++++++
 gdb-7.0/gdb/testsuite/gdb.base/break-interp.exp |   50 ++++++++++++++++++++++--
 gdb-7.0/gdb/testsuite/gdb.base/vla.exp          |   20 +++++++++
 gdb-7.0/gdb/testsuite/gdb.fortran/omp-step.exp  |   21 +++++++++-
 12 files changed, 260 insertions(+), 17 deletions(-)

--- NEW FILE gdb-rhel5-gcc44.patch ---
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as
the default gcc and gfortran binaries are from gcc-4.1.

--- gdb-7.0/gdb/testsuite/gdb.base/vla.exp-orig	2009-12-20 00:38:13.000000000 +0100
+++ gdb-7.0/gdb/testsuite/gdb.base/vla.exp	2009-12-20 00:54:19.000000000 +0100
@@ -16,7 +16,25 @@
 set testfile vla
 set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+# Temporarily provide compiler=gcc44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists compiler] {
+    set old_compiler [board_info $board compiler]
+    unset_board_info compiler
+} elseif [info exists old_compiler] {
+    unset old_compiler
+}
+set_board_info compiler gcc44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug quiet}]
+
+unset_board_info compiler
+if [info exists old_compiler] {
+    set_board_info compiler $old_compiler
+}
+
+if  { $err != "" } {
     untested "Couldn't compile test program"
     return -1
 }
--- gdb-7.0/gdb/testsuite/gdb.base/break-interp.exp-orig	2009-12-20 00:38:13.000000000 +0100
+++ gdb-7.0/gdb/testsuite/gdb.base/break-interp.exp	2009-12-20 01:11:47.000000000 +0100
@@ -31,10 +31,30 @@ if [get_compiler_info ${binfile_lib}] {
     return -1
 }
 
+# Temporarily provide compiler=gcc44 saving the original value around.
+# RHEL-5 workaround of its:
+#   gcc: -soname: linker input file unused because linking not done
+
+set board [target_info name]
+if [board_info $board exists compiler] {
+    set old_compiler [board_info $board compiler]
+    unset_board_info compiler
+} elseif [info exists old_compiler] {
+    unset old_compiler
+}
+set_board_info compiler gcc44
+
 # Use -soname so that it is listed with " => " by ldd and this testcase makes
 # a copy of ${binfile_lib} for each prelink variant.
 
-if {[gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} [list debug additional_flags=-Wl,-soname,${test}.so]] != ""} {
+set err [gdb_compile_shlib ${srcdir}/${subdir}/${srcfile_lib} ${binfile_lib} [list debug additional_flags=-Wl,-soname,${test}.so]]
+
+unset_board_info compiler
+if [info exists old_compiler] {
+    set_board_info compiler $old_compiler
+}
+
+if { $err != "" } {
     return -1
 }
 
@@ -483,9 +503,33 @@ foreach ldprelink {NO YES} {
 		    if {$binpie == "YES"} {
 			lappend opts {additional_flags=-fPIE -pie}
 		    }
-		    if {[build_executable ${test}.exp [file tail $exec] $srcfile $opts] == -1} {
-			continue;
+
+
+		    # Temporarily provide compiler=gcc44 saving the original value around.
+		    # RHEL-5 workaround of its:
+		    #   gcc: -rpath: linker input file unused because linking not done
+		    #   gcc: --dynamic-linker: linker input file unused because linking not done
+
+		    set board [target_info name]
+		    if [board_info $board exists compiler] {
+			set old_compiler [board_info $board compiler]
+			unset_board_info compiler
+		    } elseif [info exists old_compiler] {
+			unset old_compiler
+		    }
+		    set_board_info compiler gcc44
+
+		    set err [build_executable ${test}.exp [file tail $exec] $srcfile $opts]
+
+		    unset_board_info compiler
+		    if [info exists old_compiler] {
+			set_board_info compiler $old_compiler
 		    }
+
+		    if { $err == -1 } {
+			continue
+		    }
+
 		    if {$binsepdebug == "SEP"} {
 			gdb_gnu_strip_debug $exec
 			# Just a sanity check.  As gdb_gnu_strip_debug uses the
--- ./gdb/testsuite/gdb.fortran/common-block.exp	2009-12-15 05:13:56.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/common-block.exp	2009-12-15 05:21:00.000000000 +0100
@@ -20,7 +20,25 @@ set testfile "common-block"
 set srcfile ${testfile}.f90
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+}
+set_board_info f77compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if  { $err != "" } {
     untested "Couldn't compile ${srcfile}"
     return -1
 }
--- ./gdb/testsuite/gdb.fortran/dwarf-stride.exp	2009-12-15 05:13:56.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/dwarf-stride.exp	2009-12-15 05:20:07.000000000 +0100
@@ -27,7 +27,25 @@
 set testfile dwarf-stride
 set srcfile ${testfile}.f90
 
-if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77}] } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler 
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+} 
+set_board_info f77compiler gfortran44
+
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if $err {
     return -1
 }
 
--- ./gdb/testsuite/gdb.fortran/dynamic.exp	2009-12-15 05:13:56.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/dynamic.exp	2009-12-15 05:17:21.000000000 +0100
@@ -25,7 +25,25 @@ set testfile "dynamic"
 set srcfile ${testfile}.f90
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+}
+set_board_info f77compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if  { $err != "" } {
     untested "Couldn't compile ${srcfile}"
     return -1
 }
--- ./gdb/testsuite/gdb.fortran/library-module.exp	2009-12-15 05:13:56.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/library-module.exp	2009-12-15 05:22:37.000000000 +0100
@@ -25,16 +25,34 @@ if [get_compiler_info not-used] {
    return -1
 }
 
-if  { [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $objdir/$subdir/$libfile {debug f77}] != "" } {
-    untested "Couldn't compile ${srclibfile}"
-    return -1
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
 }
+set_board_info f77compiler gfortran44
 
 # prepare_for_testing cannot be used as linking with $libfile cannot be passed
 # just for the linking phase (and not the source compilation phase).  And any
 # warnings on ignored $libfile abort the process.
 
-if  { [gdb_compile [list $srcdir/$subdir/$srcfile $objdir/$subdir/$libfile] $objdir/$subdir/$binfile executable {debug f77}] != "" } {
+set err1 [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" $objdir/$subdir/$libfile {debug f77}]
+set err2 [gdb_compile [list $srcdir/$subdir/$srcfile $objdir/$subdir/$libfile] $objdir/$subdir/$binfile executable {debug f77}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if  { $err1 != "" } {
+    untested "Couldn't compile ${srclibfile}"
+    return -1
+}
+if  { $err2 != "" } {
     untested "Couldn't compile ${srcfile}"
     return -1
 }
--- ./gdb/testsuite/gdb.fortran/module.exp	2009-12-15 05:13:56.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/module.exp	2009-12-15 05:28:49.000000000 +0100
@@ -16,7 +16,25 @@
 set testfile "module"
 set srcfile ${testfile}.f90
 
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77}] } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+}
+set_board_info f77compiler gfortran44
+
+set err [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if $err {
     return -1
 }
 
--- ./gdb/testsuite/gdb.fortran/string.exp	2009-12-15 05:13:56.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/string.exp	2009-12-15 05:18:13.000000000 +0100
@@ -23,7 +23,25 @@ set testfile "string"
 set srcfile ${testfile}.f90
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+}
+set_board_info f77compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if { $err != "" } {
     untested "Couldn't compile ${srcfile}"
     return -1
 }
--- gdb-7.0/gdb/testsuite/gdb.fortran/omp-step.exp-orig	2009-12-20 09:47:04.000000000 +0100
+++ gdb-7.0/gdb/testsuite/gdb.fortran/omp-step.exp	2009-12-20 09:50:06.000000000 +0100
@@ -15,7 +15,26 @@
 
 set testfile "omp-step"
 set srcfile ${testfile}.f90
-if { [prepare_for_testing $testfile.exp $testfile $srcfile {debug f77 additional_flags=-fopenmp}] } {
+
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler 
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+} 
+set_board_info f77compiler gfortran44
+
+set err [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f77 additional_flags=-fopenmp}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if $err {
     return -1
 }
 
--- ./gdb/testsuite/gdb.fortran/derived-type.exp	2009-01-07 13:39:13.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/derived-type.exp	2009-12-20 12:37:12.000000000 +0100
@@ -26,7 +26,25 @@ set testfile "derived-type"
 set srcfile ${testfile}.f90
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+}
+set_board_info f77compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if { $err != "" } {
     untested "Couldn't compile ${srcfile}"
     return -1
 }
--- ./gdb/testsuite/gdb.fortran/subarray.exp	2009-01-07 13:39:13.000000000 +0100
+++ ./gdb/testsuite/gdb.fortran/subarray.exp	2009-12-20 12:38:00.000000000 +0100
@@ -26,7 +26,25 @@ set testfile "subarray"
 set srcfile ${testfile}.f
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } {
+# Temporarily provide f77compiler=gfortran44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists f77compiler] {
+    set old_f77compiler [board_info $board f77compiler]
+    unset_board_info f77compiler
+} elseif [info exists old_f77compiler] {
+    unset old_f77compiler
+}
+set_board_info f77compiler gfortran44
+
+set err [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}]
+
+unset_board_info f77compiler
+if [info exists old_f77compiler] {
+    set_board_info f77compiler $old_f77compiler
+}
+
+if { $err != "" } {
     untested "Couldn't compile ${srcfile}"
     return -1
 }
--- ./gdb/testsuite/gdb.threads/tls-sepdebug.exp	2009-12-20 12:22:18.000000000 +0100
+++ ./gdb/testsuite/gdb.threads/tls-sepdebug.exp	2009-12-20 12:39:53.000000000 +0100
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
 
 # FIXME: gcc dependency (-Wl,-soname).
 
-if  { [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]] != "" } {
+# Temporarily provide compiler=gcc44 saving the original value around.
+
+set board [target_info name]
+if [board_info $board exists compiler] {
+    set old_compiler [board_info $board compiler]
+    unset_board_info compiler
+} elseif [info exists old_compiler] {
+    unset old_compiler
+}
+set_board_info compiler gcc44
+
+set err [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]]
+
+unset_board_info compiler
+if [info exists old_compiler] {
+    set_board_info compiler $old_compiler
+}
+
+if { $err != "" } {
     untested "Couldn't compile test library"
     return -1
 }

gdb-7.0-upstream.patch:
 gdb/COPYING                            |  916 +++++++++++++++++++++----------
 gdb/ChangeLog                          |   75 ++
 gdb/amd64-tdep.c                       |    2 
 gdb/amd64fbsd-nat.c                    |    3 
 gdb/arm-tdep.c                         |  212 +++++++
 gdb/completer.c                        |    4 
 gdb/dbxread.c                          |    9 
 gdb/dcache.c                           |  139 +++-
 gdb/doc/ChangeLog                      |    4 
 gdb/doc/gpl.texi                       |  958 ++++++++++++++++++++++-----------
 gdb/dwarf2-frame.c                     |    8 
 gdb/dwarf2read.c                       |    3 
 gdb/elfread.c                          |    3 
 gdb/objfiles.c                         |   16 
 gdb/score-tdep.c                       |   52 -
 gdb/score-tdep.h                       |   64 --
 gdb/testsuite/ChangeLog                |   21 
 gdb/testsuite/gdb.base/bigcore.exp     |    2 
 gdb/testsuite/gdb.base/foll-fork.c     |    3 
 gdb/testsuite/gdb.base/foll-fork.exp   |    3 
 gdb/testsuite/gdb.base/structs.c       |    6 
 gdb/testsuite/gdb.base/structs.exp     |   62 +-
 src/gdb/doc/gdb.texinfo                |    6 
 src/gdb/testsuite/gdb.base/default.exp |    7 
 24 files changed, 1777 insertions(+), 801 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.3 -r 1.4 gdb-7.0-upstream.patchIndex: gdb-7.0-upstream.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb-7.0-upstream.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- gdb-7.0-upstream.patch	18 Dec 2009 09:48:50 -0000	1.3
+++ gdb-7.0-upstream.patch	21 Dec 2009 11:26:47 -0000	1.4
@@ -1,6 +1,1019 @@
-### ./gdb/ChangeLog	6 Oct 2009 16:32:30 -0000	1.10874.2.46
-### ./gdb/ChangeLog	22 Oct 2009 20:31:36 -0000	1.10874.2.52
-## -1,3 +1,33 @@
+--- a/gdb/COPYING
++++ b/gdb/COPYING
+@@ -1,286 +1,626 @@
+-		    GNU GENERAL PUBLIC LICENSE
+-		       Version 2, June 1991
++                    GNU GENERAL PUBLIC LICENSE
++                       Version 3, 29 June 2007
+ 
+- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+-                       51 Franklin Street, Fifth Floor, 
+-		       Boston, MA 02110-1301, USA
++ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+  Everyone is permitted to copy and distribute verbatim copies
+  of this license document, but changing it is not allowed.
+ 
+-			    Preamble
++                            Preamble
+ 
+-  The licenses for most software are designed to take away your
+-freedom to share and change it.  By contrast, the GNU General Public
+-License is intended to guarantee your freedom to share and change free
+-software--to make sure the software is free for all its users.  This
+-General Public License applies to most of the Free Software
+-Foundation's software and to any other program whose authors commit to
+-using it.  (Some other Free Software Foundation software is covered by
+-the GNU Library General Public License instead.)  You can apply it to
++  The GNU General Public License is a free, copyleft license for
++software and other kinds of works.
++
++  The licenses for most software and other practical works are designed
++to take away your freedom to share and change the works.  By contrast,
++the GNU General Public License is intended to guarantee your freedom to
++share and change all versions of a program--to make sure it remains free
++software for all its users.  We, the Free Software Foundation, use the
++GNU General Public License for most of our software; it applies also to
++any other work released this way by its authors.  You can apply it to
+ your programs, too.
+ 
+   When we speak of free software, we are referring to freedom, not
+ price.  Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+-this service if you wish), that you receive source code or can get it
+-if you want it, that you can change the software or use pieces of it
+-in new free programs; and that you know you can do these things.
++them if you wish), that you receive source code or can get it if you
++want it, that you can change the software or use pieces of it in new
++free programs, and that you know you can do these things.
+ 
+-  To protect your rights, we need to make restrictions that forbid
+-anyone to deny you these rights or to ask you to surrender the rights.
+-These restrictions translate to certain responsibilities for you if you
+-distribute copies of the software, or if you modify it.
++  To protect your rights, we need to prevent others from denying you
++these rights or asking you to surrender the rights.  Therefore, you have
++certain responsibilities if you distribute copies of the software, or if
++you modify it: responsibilities to respect the freedom of others.
+ 
+   For example, if you distribute copies of such a program, whether
+-gratis or for a fee, you must give the recipients all the rights that
+-you have.  You must make sure that they, too, receive or can get the
+-source code.  And you must show them these terms so they know their
+-rights.
+-
+-  We protect your rights with two steps: (1) copyright the software, and
+-(2) offer you this license which gives you legal permission to copy,
+-distribute and/or modify the software.
+-
+-  Also, for each author's protection and ours, we want to make certain
+-that everyone understands that there is no warranty for this free
+-software.  If the software is modified by someone else and passed on, we
+-want its recipients to know that what they have is not the original, so
+-that any problems introduced by others will not reflect on the original
+-authors' reputations.
+-
+-  Finally, any free program is threatened constantly by software
+-patents.  We wish to avoid the danger that redistributors of a free
+-program will individually obtain patent licenses, in effect making the
+-program proprietary.  To prevent this, we have made it clear that any
+-patent must be licensed for everyone's free use or not licensed at all.
++gratis or for a fee, you must pass on to the recipients the same
++freedoms that you received.  You must make sure that they, too, receive
++or can get the source code.  And you must show them these terms so they
++know their rights.
++
++  Developers that use the GNU GPL protect your rights with two steps:
++(1) assert copyright on the software, and (2) offer you this License
++giving you legal permission to copy, distribute and/or modify it.
++
++  For the developers' and authors' protection, the GPL clearly explains
++that there is no warranty for this free software.  For both users' and
++authors' sake, the GPL requires that modified versions be marked as
++changed, so that their problems will not be attributed erroneously to
++authors of previous versions.
++
++  Some devices are designed to deny users access to install or run
++modified versions of the software inside them, although the manufacturer
++can do so.  This is fundamentally incompatible with the aim of
++protecting users' freedom to change the software.  The systematic
++pattern of such abuse occurs in the area of products for individuals to
++use, which is precisely where it is most unacceptable.  Therefore, we
++have designed this version of the GPL to prohibit the practice for those
++products.  If such problems arise substantially in other domains, we
++stand ready to extend this provision to those domains in future versions
++of the GPL, as needed to protect the freedom of users.
++
++  Finally, every program is threatened constantly by software patents.
++States should not allow patents to restrict development and use of
++software on general-purpose computers, but in those that do, we wish to
++avoid the special danger that patents applied to a free program could
++make it effectively proprietary.  To prevent this, the GPL assures that
++patents cannot be used to render the program non-free.
+ 
+   The precise terms and conditions for copying, distribution and
+ modification follow.
+-

+-		    GNU GENERAL PUBLIC LICENSE
+-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+-
+-  0. This License applies to any program or other work which contains
+-a notice placed by the copyright holder saying it may be distributed
+-under the terms of this General Public License.  The "Program", below,
+-refers to any such program or work, and a "work based on the Program"
+-means either the Program or any derivative work under copyright law:
+-that is to say, a work containing the Program or a portion of it,
+-either verbatim or with modifications and/or translated into another
+-language.  (Hereinafter, translation is included without limitation in
+-the term "modification".)  Each licensee is addressed as "you".
+-
+-Activities other than copying, distribution and modification are not
+-covered by this License; they are outside its scope.  The act of
+-running the Program is not restricted, and the output from the Program
+-is covered only if its contents constitute a work based on the
+-Program (independent of having been made by running the Program).
+-Whether that is true depends on what the Program does.
+-
+-  1. You may copy and distribute verbatim copies of the Program's
+-source code as you receive it, in any medium, provided that you
+-conspicuously and appropriately publish on each copy an appropriate
+-copyright notice and disclaimer of warranty; keep intact all the
+-notices that refer to this License and to the absence of any warranty;
+-and give any other recipients of the Program a copy of this License
+-along with the Program.
+-
+-You may charge a fee for the physical act of transferring a copy, and
+-you may at your option offer warranty protection in exchange for a fee.
+-
+-  2. You may modify your copy or copies of the Program or any portion
+-of it, thus forming a work based on the Program, and copy and
+-distribute such modifications or work under the terms of Section 1
+-above, provided that you also meet all of these conditions:
+-
+-    a) You must cause the modified files to carry prominent notices
+-    stating that you changed the files and the date of any change.
+-
+-    b) You must cause any work that you distribute or publish, that in
+-    whole or in part contains or is derived from the Program or any
+-    part thereof, to be licensed as a whole at no charge to all third
+-    parties under the terms of this License.
+-
+-    c) If the modified program normally reads commands interactively
+-    when run, you must cause it, when started running for such
+-    interactive use in the most ordinary way, to print or display an
+-    announcement including an appropriate copyright notice and a
+-    notice that there is no warranty (or else, saying that you provide
+-    a warranty) and that users may redistribute the program under
+-    these conditions, and telling the user how to view a copy of this
+-    License.  (Exception: if the Program itself is interactive but
+-    does not normally print such an announcement, your work based on
+-    the Program is not required to print an announcement.)
+-

+-These requirements apply to the modified work as a whole.  If
+-identifiable sections of that work are not derived from the Program,
+-and can be reasonably considered independent and separate works in
+-themselves, then this License, and its terms, do not apply to those
+-sections when you distribute them as separate works.  But when you
+-distribute the same sections as part of a whole which is a work based
+-on the Program, the distribution of the whole must be on the terms of
+-this License, whose permissions for other licensees extend to the
+-entire whole, and thus to each and every part regardless of who wrote it.
+-
+-Thus, it is not the intent of this section to claim rights or contest
+-your rights to work written entirely by you; rather, the intent is to
+-exercise the right to control the distribution of derivative or
+-collective works based on the Program.
+-
+-In addition, mere aggregation of another work not based on the Program
+-with the Program (or with a work based on the Program) on a volume of
+-a storage or distribution medium does not bring the other work under
[...2640 lines suppressed...]
-	(start_structs_test): Import global anychar_re and first.
-	New gdb_test call "set print elements 300; ${testfile}"
-	(start_structs_test <$first>): New block.
-	(any): Import global anychar_re.  New variable ac.  Use ${ac}.
-
+--- a/gdb/testsuite/gdb.base/foll-fork.c
++++ b/gdb/testsuite/gdb.base/foll-fork.c
+@@ -9,7 +9,8 @@ void callee (i)
+   int  i;
+ #endif
+ {
+-  printf("callee: %d\n", i);
++  /* Any output corrupts GDB CLI expect strings.
++     printf("callee: %d\n", i);  */
+ }
+ 
+ #ifdef PROTOTYPES
+--- a/gdb/testsuite/gdb.base/foll-fork.exp
++++ b/gdb/testsuite/gdb.base/foll-fork.exp
+@@ -240,7 +240,8 @@ proc catch_fork_unpatch_child {} {
+    # Delete all breakpoints and catchpoints.
+    delete_breakpoints
+ 
+-   gdb_test "break $bp_exit" \
++   # Force $srcfile as the current GDB source can be in glibc sourcetree.
++   gdb_test "break $srcfile:$bp_exit" \
+        "Breakpoint .*file .*$srcfile, line .*" \
+        "unpatch child, breakpoint at exit call"
+ 
 --- a/gdb/testsuite/gdb.base/structs.c
 +++ b/gdb/testsuite/gdb.base/structs.c
 @@ -396,6 +396,8 @@ zed ()
@@ -487,76 +3049,11 @@ gdb/testsuite/
  }
  
  # Given N (0..25), return the corresponding alphabetic letter in lower
-
-
-
-http://sourceware.org/ml/gdb-patches/2009-11/msg00573.html
-http://sourceware.org/ml/gdb-cvs/2009-11/msg00232.html
-Subject: [patch] testsuite fuzzy results fixup: foll-fork.exp
-
-Hi,
-
-one occasional timeout:
-
- (gdb) PASS: gdb.base/foll-fork.exp: default show parent follow, no catchpoints
- next 2
--callee: 9949
- 25       if (pid == 0) /* set breakpoint here */
--(gdb) PASS: gdb.base/foll-fork.exp: default parent follow, no catchpoints
-+(gdb) callee: 18747
-+FAIL: gdb.base/foll-fork.exp: (timeout) default parent follow, no catchpoints
-
-Dropped the strings as there is no "callee" string expectation in
-foll-fork.exp.
-
-
-and with glibc-debuginfo installed one gets:
-
-(gdb) break 39
-Reading in symbols for ../nptl/sysdeps/unix/sysv/linux/fork.c...done.
-Breakpoint 12 at 0x3ad22a4876: file ../nptl/sysdeps/unix/sysv/linux/fork.c, line 39.
-(gdb) FAIL: gdb.base/foll-fork.exp: unpatch child, breakpoint at exit call
-+
-Breakpoint 12, __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/fork.c:158
-158           fresetlockfiles ();
-(gdb) FAIL: gdb.base/foll-fork.exp: unpatch child, unpatched parent breakpoints from child (unknown output)
-
-
-Thanks,
-Jan
-
-
-gdb/testsuite/
-2009-11-26  Jan Kratochvil  <jan.kratochvil at redhat.com>
-
-	* gdb.base/foll-fork.exp (unpatch child, breakpoint at exit call):
-	Force $srcfile file.
-	* gdb.base/foll-fork.c (callee): Comment out the printf call.
-
---- a/gdb/testsuite/gdb.base/foll-fork.c
-+++ b/gdb/testsuite/gdb.base/foll-fork.c
-@@ -9,7 +9,8 @@ void callee (i)
-   int  i;
- #endif
- {
--  printf("callee: %d\n", i);
-+  /* Any output corrupts GDB CLI expect strings.
-+     printf("callee: %d\n", i);  */
- }
- 
- #ifdef PROTOTYPES
---- a/gdb/testsuite/gdb.base/foll-fork.exp
-+++ b/gdb/testsuite/gdb.base/foll-fork.exp
-@@ -240,7 +240,8 @@ proc catch_fork_unpatch_child {} {
-    # Delete all breakpoints and catchpoints.
-    delete_breakpoints
- 
--   gdb_test "break $bp_exit" \
-+   # Force $srcfile as the current GDB source can be in glibc sourcetree.
-+   gdb_test "break $srcfile:$bp_exit" \
-        "Breakpoint .*file .*$srcfile, line .*" \
-        "unpatch child, breakpoint at exit call"
- 
+### a/gdb/version.in
+### b/gdb/version.in
+## -1 +1 @@
+-7.0
++7.0.0.20091221-cvs
 
 
 
@@ -627,37 +3124,54 @@ gdb/
 
 
 
-http://sourceware.org/ml/gdb-patches/2009-11/msg00422.html
-http://sourceware.org/ml/gdb-cvs/2009-11/msg00169.html
-
-### src/gdb/ChangeLog	2009/11/19 22:42:48	1.11094
-### src/gdb/ChangeLog	2009/11/19 22:44:32	1.11095
+Re: [RFA] Fix "show convenience" test
+http://sourceware.org/ml/gdb-patches/2009-09/msg00565.html
+http://sourceware.org/ml/gdb-cvs/2009-09/msg00099.html
+
+### src/gdb/testsuite/ChangeLog	2009/09/15 18:51:25	1.1960
+### src/gdb/testsuite/ChangeLog	2009/09/17 17:49:46	1.1961
+## -1,3 +1,7 @@
++2009-09-17  Paul Pluzhnikov  <ppluzhnikov at google.com>
++
++	* gdb.base/default.exp: Fix "show convenience".
++
+ 2009-09-15  Tom Tromey  <tromey at redhat.com>
+ 
+ 	* lib/mi-support.exp (mi_create_varobj): Update.
+--- src/gdb/testsuite/gdb.base/default.exp	2009/08/13 14:58:27	1.31
++++ src/gdb/testsuite/gdb.base/default.exp	2009/09/17 17:49:46	1.32
+@@ -598,7 +598,7 @@
+ #test show confirm
+ gdb_test "show confirm" "Whether to confirm potentially dangerous operations is o\[a-z\]*." "show confirm"
+ #test show convenience
+-gdb_test "show convenience" "No debugger convenience variables now defined.(\[^\r\n\]*\[\r\n\])+Convenience variables have names starting with \".\";(\[^\r\n\]*\[\r\n\])+use \"set\" as in \"set .foo = 5\" to define them." "show convenience"
++gdb_test "show convenience" "\\\$_siginfo = void" "show convenience"
+ #test show directories
+ gdb_test "show directories" "Source directories searched: .cdir\[:;\].cwd" "show directories"
+ #test show editing
+### src/gdb/doc/ChangeLog	2009/09/15 18:51:24	1.953
+### src/gdb/doc/ChangeLog	2009/09/17 17:49:46	1.954
 ## -1,3 +1,8 @@
-+2009-11-19  Joel Brobecker  <brobecker at adacore.com>
++2009-09-17  Paul Pluzhnikov  <ppluzhnikov at google.com>
 +
-+	* completer.c (complete_line_internal): Make sure the command
-+	completer is not NULL before calling it.
-+
- 2009-11-19  Jerome Guitton  <guitton at adacore.com>
++	* gdb.texinfo (convenince variables): Mention
++	$_siginfo could be empty.
++	
+ 2009-09-15  Tom Tromey  <tromey at redhat.com>
  
- 	* ada-lang.c (packed_array_type): Rename to...
---- src/gdb/completer.c	2009/03/25 10:50:56	1.34
-+++ src/gdb/completer.c	2009/11/19 22:44:34	1.35
-@@ -676,7 +676,7 @@
- 			   p--)
- 			;
- 		    }
--		  if (reason != handle_brkchars)
-+		  if (reason != handle_brkchars && c->completer != NULL)
- 		    list = (*c->completer) (c, p, word);
- 		}
- 	    }
-@@ -747,7 +747,7 @@
- 		       p--)
- 		    ;
- 		}
--	      if (reason != handle_brkchars)
-+	      if (reason != handle_brkchars && c->completer != NULL)
- 		list = (*c->completer) (c, p, word);
- 	    }
- 	}
+ 	* gdb.texinfo (GDB/MI Variable Objects): Document
+--- src/gdb/doc/gdb.texinfo	2009/09/15 18:51:25	1.624
++++ src/gdb/doc/gdb.texinfo	2009/09/17 17:49:46	1.625
+@@ -7819,8 +7819,10 @@
+ 
+ @item $_siginfo
+ @vindex $_siginfo at r{, convenience variable}
+-The variable @code{$_siginfo} is bound to extra signal information
+-inspection (@pxref{extra signal information}).
++The variable @code{$_siginfo} contains extra signal information
++(@pxref{extra signal information}).  Note that @code{$_siginfo}
++could be empty, if the application has not yet received any signals.
++For example, it will be empty before you execute the @code{run} command.
+ @end table
+ 
+ On HP-UX systems, if you refer to a function or variable name that


Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb.spec,v
retrieving revision 1.403
retrieving revision 1.404
diff -u -p -r1.403 -r1.404
--- gdb.spec	18 Dec 2009 09:51:52 -0000	1.403
+++ gdb.spec	21 Dec 2009 11:26:48 -0000	1.404
@@ -16,8 +16,10 @@
 # RHEL-5 ppc* python .so files are shipped only as ppc but gdb is ppc64 there.
 # Brew builds it fine as its ppc64 buildroot has full ppc64 package set.
 %if 0%{?el5:1}
+%ifarch ppc ppc64
 %define _without_python 1
 %endif
+%endif
 
 Summary: A GNU source-level debugger for C, C++, Java and other languages
 Name: gdb%{?_with_debug:-debug}
@@ -29,7 +31,7 @@ Version: 7.0
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 11%{?_with_upstream:.upstream}%{dist}
+Release: 12%{?_with_upstream:.upstream}%{dist}
 
 License: GPLv3+
 Group: Development/Debuggers
@@ -401,7 +403,17 @@ Patch391: gdb-x86_64-i386-syscall-restar
 Patch392: gdb-bz533176-fortran-omp-step.patch
 
 # Use gfortran44 when running the testsuite on RHEL-5.
-Patch393: gdb-rhel5-fortran44.patch
+Patch393: gdb-rhel5-gcc44.patch
+
+# Disable warning messages new for gdb-6.8+ for RHEL-5 backward compatibility.
+# Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).
+Patch335: gdb-rhel5-compat.patch
+
+# Fix backward compatibility with G++ 4.1 namespaces "::".
+Patch395: gdb-empty-namespace.patch
+
+# Fix regression on re-setting the single ppc watchpoint slot.
+Patch396: gdb-ppc-hw-watchpoint-twice.patch
 
 BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
 Requires: readline
@@ -412,7 +424,11 @@ BuildRequires: rpm-devel
 Requires: zlib
 BuildRequires: zlib-devel
 %if 0%{!?_without_python:1}
+%if 0%{!?el5:1}
 Requires: python-libs
+%else
+Requires: python
+%endif
 BuildRequires: python-devel
 # Temporarily before it gets moved to libstdc++.rpm
 BuildRequires: libstdc++
@@ -634,10 +650,14 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
 %patch392 -p1
 # Always verify its applicability.
 %patch393 -p1
+%patch335 -p1
 %if 0%{!?el5:1}
 %patch393 -p1 -R
+%patch335 -p1 -R
 %endif
 %patch394 -p1
+%patch395 -p1
+%patch396 -p1
 
 find -name "*.orig" | xargs rm -f
 ! find -name "*.rej"	# Should not happen.
@@ -706,6 +726,8 @@ CFLAGS="$CFLAGS -O0 -ggdb2"
 	--disable-rpath					\
 	--with-system-readline				\
 	--with-expat					\
+$(: ppc64 host build crashes on /usr/lib/libexpat.so )	\
+	--without-libexpat-prefix			\
 	--enable-tui					\
 %if 0%{!?_without_python:1}
 	--with-python					\
@@ -808,7 +830,12 @@ gcc -o ./orphanripper %{SOURCE2} -Wall -
   CHECK="$(echo $CHECK|sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
 %endif	# 0%{!?_with_upstream:1}
 
-  ./orphanripper make %{?_smp_mflags} -k $CHECK || :
+  ./orphanripper make %{?_smp_mflags} -k $CHECK \
+$(: Serialize the output to keep the order for regression checks. ) \
+%if 0%{?el5:1}
+    RUNTESTFLAGS="--tool gdb" \
+%endif
+    || :
 )
 for t in sum log
 do
@@ -942,6 +969,19 @@ fi
 %endif
 
 %changelog
+* Mon Dec 21 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0-12.fc12
+- Workaround build on native ppc64 host.
+- More RHEL-5 compatibility updates.
+  - Disable warning messages new for gdb-6.8+ for RHEL-5 backward compatibility.
+  - Workaround RHEL-5 kernels for detaching SIGSTOPped processes (BZ 498595).
+  - Serialize the testsuite output to keep the order for regression checks.
+  - Re-enable python for all non-ppc* arches.
+  - More gcc44 stack exceptions when running the testsuite on RHEL-5.
+- Fix backward compatibility with G++ 4.1 namespaces "::".
+- Fix regression on re-setting the single ppc watchpoint slot.
+- Update snapshot of FSF gdb-7.0.x branch.
+  - Backport fix of dcache invalidation locking up GDB on ppc64 targets.
+
 * Fri Dec 18 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0-11.fc12
 - [pie] Fix general ppc64 regression due to a function descriptors bug.
 - [pie] Fix also keeping breakpoints disabled in PIE mode.


--- gdb-rhel5-fortran44.patch DELETED ---




More information about the fedora-extras-commits mailing list