rpms/gdb/FC-4 gdb-6.3-catch-debug-registers-error-20060527.patch, NONE, 1.1 .cvsignore, 1.18, 1.19 gdb-6.3-augmS-20060303.patch, 1.2, 1.3 gdb-6.3-cfaval-20060303.patch, 1.3, 1.4 gdb-6.3-gstack-without-path-20060414.patch, 1.1, 1.2 gdb.spec, 1.178, 1.179 sources, 1.18, 1.19 gdb-6.3-sigchld-exception-20060331.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sat May 27 07:34:42 UTC 2006


Author: aoliva

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

Modified Files:
	.cvsignore gdb-6.3-augmS-20060303.patch 
	gdb-6.3-cfaval-20060303.patch 
	gdb-6.3-gstack-without-path-20060414.patch gdb.spec sources 
Added Files:
	gdb-6.3-catch-debug-registers-error-20060527.patch 
Removed Files:
	gdb-6.3-sigchld-exception-20060331.patch 
Log Message:
* Sat May 27 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.130
- Rewrite patch for BZ 175270, BZ 175083 so as to catch the exception
earlier.
- Remove too-fragile testcases from patches for CFA value and "S"
augmentation.


gdb-6.3-catch-debug-registers-error-20060527.patch:
 i386-linux-nat.c |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

--- NEW FILE gdb-6.3-catch-debug-registers-error-20060527.patch ---
for gdb-6.3/gdb/ChangeLog
from  Alexandre Oliva  <aoliva at redhat.com>

	* i386-linux-nat.c (i386_debug_register_for_thread): New struct.
	(i386_linux_set_dr_for_thread): Rename from...
	(i386_linux_set_debug_regs_for_thread): ... this, and
	add new function to catch exceptions in the old one.

Index: gdb-6.3/gdb/i386-linux-nat.c
===================================================================
--- gdb-6.3.orig/gdb/i386-linux-nat.c	2006-04-14 03:22:47.000000000 -0300
+++ gdb-6.3/gdb/i386-linux-nat.c	2006-05-27 03:48:47.000000000 -0300
@@ -694,14 +694,33 @@ struct i386_debug_register_state
   unsigned long control;
 };
 
-static void
-i386_linux_set_debug_regs_for_thread (ptid_t ptid,
-				      struct i386_debug_register_state *dbs)
+struct i386_debug_register_for_thread
+{
+  ptid_t ptid;
+  struct i386_debug_register_state *dbs;
+};
+
+static int
+i386_linux_set_dr_for_thread (void *drp)
 {
+  ptid_t ptid = ((struct i386_debug_register_for_thread *)drp)->ptid;
+  struct i386_debug_register_state *dbs
+    = ((struct i386_debug_register_for_thread *)drp)->dbs;
   int i;
   for (i = 0; i < (DR_LASTADDR - DR_FIRSTADDR) + 1; ++i)
     i386_linux_dr_set_addr (ptid, i, dbs->addr[i]);
   i386_linux_dr_set_control (ptid, dbs->control);
+  return 1;
+}
+
+static int
+i386_linux_set_debug_regs_for_thread (ptid_t ptid,
+				      struct i386_debug_register_state *dbs)
+{
+  struct i386_debug_register_for_thread dr;
+  dr.ptid = ptid;
+  dr.dbs = dbs;
+  return catch_errors (i386_linux_set_dr_for_thread, &dr, "", RETURN_MASK_ALL);
 }
 
 /* Iterator function to support syncing debug registers across all threads.  */


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/.cvsignore,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- .cvsignore	3 Apr 2005 00:30:15 -0000	1.18
+++ .cvsignore	27 May 2006 07:34:30 -0000	1.19
@@ -1,3 +1 @@
-gdb+dejagnu-20040607.tar.bz2
 gdb-6.3.tar.bz2
-gdb-6.3.50.20050401.tar.bz2

gdb-6.3-augmS-20060303.patch:
 dwarf2-frame.c |   34 +++++++++++++++++++++++++++++++---
 dwarf2-frame.h |    8 ++++++++
 2 files changed, 39 insertions(+), 3 deletions(-)

Index: gdb-6.3-augmS-20060303.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb-6.3-augmS-20060303.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gdb-6.3-augmS-20060303.patch	7 Mar 2006 05:13:17 -0000	1.2
+++ gdb-6.3-augmS-20060303.patch	27 May 2006 07:34:30 -0000	1.3
@@ -13,12 +13,6 @@
 	(dwarf2_frame_sniffer): Use dwarf2_frame_signal_frame_p.
 	* dwarf2-frame.h (dwarf2_frame_set_signal_frame_p): New prototype.
 
-for gdb/testsuite/ChangeLog
-2006-03-03  Alexandre Oliva  <aoliva at redhat.com>
-
-	* gdb.dwarf2/signal-augm.exp: New test.
-	* gdb.dwarf2/signal-augm.c, gdb.dwarf2/signal-augm.S: Its sources.
-
 Index: gdb-6.3/gdb/dwarf2-frame.c
 ===================================================================
 --- gdb-6.3.orig/gdb/dwarf2-frame.c	2006-02-14 17:21:07.000000000 -0200
@@ -86,503 +80,6 @@
  	  /* Otherwise we have an unknown augmentation.
  	     Bail out unless we saw a 'z' prefix.  */
  	  else
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.S
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.S	2006-03-03 13:31:10.000000000 -0300
-@@ -0,0 +1,207 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+   Copyright 2006  Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-+
-+   Written by Jakub Jelinek, as testcase for GCC PR 26208.  */
-+
-+	.globl fn3
-+	.type	fn3, @function
-+#ifdef __powerpc64__
-+	.section ".opd","aw"
-+	.align	3
-+fn3:
-+	.quad   .L.fn3,.TOC. at tocbase,0
-+	.text
-+.L.fn3:
-+#else
-+	.text
-+	.p2align 4,,15
-+fn3:
-+#endif
-+	.cfi_startproc
-+#if defined __x86_64__
-+	movl	$10, %eax
-+	movl	$11, %ecx
-+1:	pushq	%rax
-+	.cfi_adjust_cfa_offset 8
-+	pushq	%rcx
-+	.cfi_adjust_cfa_offset 8
-+	popq	%rax
-+	.cfi_adjust_cfa_offset -8
-+	popq	%rcx
-+	.cfi_adjust_cfa_offset -8
-+	pushq	%rax
-+	.cfi_adjust_cfa_offset 8
-+	pushq	%rcx
-+	.cfi_adjust_cfa_offset 8
-+	popq	%rax
-+	.cfi_adjust_cfa_offset -8
-+	popq	%rcx
-+	.cfi_adjust_cfa_offset -8
-+	pushq	%rax
-+	.cfi_adjust_cfa_offset 8
-+	pushq	%rcx
-+	.cfi_adjust_cfa_offset 8
-+	popq	%rax
-+	.cfi_adjust_cfa_offset -8
-+	popq	%rcx
-+	.cfi_adjust_cfa_offset -8
-+	pushq	%rax
-+	.cfi_adjust_cfa_offset 8
-+	pushq	%rcx
-+	.cfi_adjust_cfa_offset 8
-+	popq	%rax
-+	.cfi_adjust_cfa_offset -8
-+	popq	%rcx
-+	.cfi_adjust_cfa_offset -8
-+	jmp	1b
-+#elif defined __i386__
-+	movl	$10, %eax
-+	movl	$11, %ecx
-+1:	pushl	%eax
-+	.cfi_adjust_cfa_offset 4
-+	pushl	%ecx
-+	.cfi_adjust_cfa_offset 4
-+	popl	%eax
-+	.cfi_adjust_cfa_offset -4
-+	popl	%ecx
-+	.cfi_adjust_cfa_offset -4
-+	pushl	%eax
-+	.cfi_adjust_cfa_offset 4
-+	pushl	%ecx
-+	.cfi_adjust_cfa_offset 4
-+	popl	%eax
-+	.cfi_adjust_cfa_offset -4
-+	popl	%ecx
-+	.cfi_adjust_cfa_offset -4
-+	pushl	%eax
-+	.cfi_adjust_cfa_offset 4
-+	pushl	%ecx
-+	.cfi_adjust_cfa_offset 4
-+	popl	%eax
-+	.cfi_adjust_cfa_offset -4
-+	popl	%ecx
-+	.cfi_adjust_cfa_offset -4
-+	pushl	%eax
-+	.cfi_adjust_cfa_offset 4
-+	pushl	%ecx
-+	.cfi_adjust_cfa_offset 4
-+	popl	%eax
-+	.cfi_adjust_cfa_offset -4
-+	popl	%ecx
-+	.cfi_adjust_cfa_offset -4
-+	jmp	1b
-+#elif defined __powerpc64__
-+	mflr	0
-+	mr	9,1
-+	std	0,16(1)
-+	.cfi_offset lr, 8
-+	bl	1f
-+1:	stdu	1,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	stdu	9,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	stdu	1,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	stdu	9,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	b	1b
-+#elif defined __powerpc__
-+	mflr	0
-+	mr	9,1
-+	stwu	1,-16(1)
-+	.cfi_adjust_cfa_offset 16
-+	stw	0,20(1)
-+	.cfi_offset lr, 4
-+	bl	1f
-+1:	stwu	9,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	stwu	9,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	stwu	9,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	stwu	9,-64(1)
-+	.cfi_adjust_cfa_offset 64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	addi	1,1,64
-+	.cfi_adjust_cfa_offset -64
-+	b	1b
-+#elif defined __s390x__
-+	stmg	%r14,%r15,112(%r15)
-+	.cfi_offset %r14, -48
-+	.cfi_offset %r15, -40
-+	lghi	%r14,6
-+1:	aghi	%r15,-160
-+	.cfi_adjust_cfa_offset	160
-+	aghi	%r15,-160
-+	.cfi_adjust_cfa_offset	160
-+	aghi	%r15,160
-+	.cfi_adjust_cfa_offset	-160
-+	aghi	%r15,160
-+	.cfi_adjust_cfa_offset	-160
-+	aghi	%r15,-160
-+	.cfi_adjust_cfa_offset	160
-+	aghi	%r15,-160
-+	.cfi_adjust_cfa_offset	160
-+	aghi	%r15,160
-+	.cfi_adjust_cfa_offset	-160
-+	aghi	%r15,160
-+	.cfi_adjust_cfa_offset	-160
-+	j	1b
-+#elif defined __s390__
-+	stm	%r14,%r15,56(%r15)
-+	.cfi_offset %r14, -40
-+	.cfi_offset %r15, -36
-+	lgi	%r14,6
-+1:	ahi	%r15,-96
-+	.cfi_adjust_cfa_offset	96
-+	ahi	%r15,-96
-+	.cfi_adjust_cfa_offset	96
-+	ahi	%r15,96
-+	.cfi_adjust_cfa_offset	-96
-+	ahi	%r15,96
-+	.cfi_adjust_cfa_offset	-96
-+	ahi	%r15,-96
-+	.cfi_adjust_cfa_offset	96
-+	ahi	%r15,-96
-+	.cfi_adjust_cfa_offset	96
-+	ahi	%r15,96
-+	.cfi_adjust_cfa_offset	-96
-+	ahi	%r15,96
-+	.cfi_adjust_cfa_offset	-96
-+	j	1b
-+#endif
-+	.cfi_endproc
-+#ifdef __powerpc64__
-+	.size	fn3, . - .L.fn3
-+#else
-+	.size	fn3, .-fn3
-+#endif
-+	.section	.note.GNU-stack,"", at progbits
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.c	2006-03-03 13:31:10.000000000 -0300
-@@ -0,0 +1,198 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+   Copyright 2006  Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-+
-+   Written by Jakub Jelinek, as testcase for GCC PR 26208.  GDB does
-+   not need all of it, since all we do is to try to recognize signal
-+   stack frames.  If the compiler does not support the S augmentation
-+   used to denote stack frames, and GDB does not otherwise recognize
-+   stack frames, the test fails.  */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <signal.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <pthread.h>
-+#include <unistd.h>
-+#include <sys/wait.h>
-+#include <sys/syscall.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+                   _Unwind_Exception_Class exc_class,
-+                   struct _Unwind_Exception *exc_obj,
-+                   struct _Unwind_Context *context,
-+                   void *stop_parameter)
-+{
-+  if (actions & _UA_END_OF_STACK)
-+    abort ();
-+  return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+  exc->exception_cleanup = 0;
-+
-+#ifndef __USING_SJLJ_EXCEPTIONS__
-+  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+#else
-+  _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
-+#endif
-+
-+  abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+  ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+  if (count != 2)
-+    abort ();
-+  _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  force_unwind ();
-+  return 0;
-+}
-+
-+static void
-+fn4 (int sig, siginfo_t *info, void *ctx)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  fn5 ();
-+}
-+
-+extern void fn3 (long a, long b, long c, long d, long e, long f, long g);
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+  fn3 (1, 2, 3, 4, 5, 6, 7);
-+  return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+#if defined __i386__ && defined SIGACTION_DIRECT_SYSCALL
-+  struct i386_kernel_sigaction
-+    {
-+      void (*k_sa_handler) (int, siginfo_t *, void *);
-+      unsigned long k_sa_flags;
-+      void (*sa_restorer) (void);
-+      unsigned long long k_sa_mask;
-+    } s;
-+  extern void __cleanup12_rt_sigreturn (void);
-+  s.k_sa_handler = fn4;
-+  s.k_sa_mask = 0;
-+  s.k_sa_flags = 0x4000000 | SA_RESETHAND | SA_SIGINFO;
-+  s.sa_restorer = __cleanup12_rt_sigreturn;
-+  asm volatile (".subsection 1; nop; __cleanup12_rt_sigreturn:"
-+		"movl %0, %%eax; int $0x80; .previous"
-+		: : "i" (__NR_rt_sigreturn));
-+  syscall (SYS_rt_sigaction, SIGUSR1, &s, NULL, 8);
-+#else
-+  struct sigaction s;
-+  sigemptyset (&s.sa_mask);
-+  s.sa_sigaction = fn4;
-+  s.sa_flags = SA_RESETHAND | SA_SIGINFO;
-+  sigaction (SIGUSR1, &s, NULL);
-+#endif
-+  fn2 ();
-+  return 0;
-+}
-+
-+static void *
-+tf (void *arg)
-+{
-+  char dummy __attribute__((cleanup (handler)));
-+  (void) arg;
-+  fn1 ();
-+  return 0;
-+}
-+
-+void
-+do_test (void)
-+{
-+  pthread_t th;
-+  struct timespec ts;
-+  if (pthread_create (&th, 0, tf, 0))
-+    {
-+      fputs ("pthread_create failed\n", stderr);
-+      _exit (1);
-+    }
-+  ts.tv_sec = 1;
-+  ts.tv_nsec = 0;
-+  nanosleep (&ts, NULL);
-+  if (pthread_kill (th, SIGUSR1))
-+    {
-+      fputs ("pthread_kill failed\n", stderr);
-+      _exit (1);
-+    }
-+  ts.tv_sec = 3;
-+  ts.tv_nsec = 0;
-+  nanosleep (&ts, NULL);
-+  _exit (1);
-+}
-+
-+int
-+main (int argc, char **argv)
-+{
-+  int i, failures = 0, status;
-+  if (argc == 2 && strcmp (argv[1], "-d") == 0)
-+    do_test ();
-+  else
-+    for (i = 0; i < 50; i++)
-+      {
-+	pid_t pid = fork ();
-+	if (pid < 0)
-+	  {
-+	    perror ("fork");
-+	    failures++;
-+	  }
-+	else if (pid == 0)
-+	  do_test ();
-+	else if (waitpid (pid, &status, 0) < 0)
-+	  {
-+	    perror ("waitpid");
-+	    failures++;
-+	  }
-+	else if (! WIFEXITED (status) || WEXITSTATUS (status))
-+	  {
-+	    fprintf (stderr, "Failure in round %d\n", i);
-+	    failures++;
-+	  }
-+      }
-+  if (failures)
-+    abort ();
-+  return 0;
-+}
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.exp
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/signal-augm.exp	2006-03-03 13:31:10.000000000 -0300
-@@ -0,0 +1,77 @@
-+# Copyright 2006 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-+
-+# Please email any bugs, comments, and/or additions to this file to:
-+# bug-gdb at gnu.org
-+
-+# This file was written by Alexandre Oliva <aoliva at redhat.com>
-+
-+if $tracelevel then {
-+	strace $tracelevel
-+	}
-+
-+set prms_id 0
-+set bug_id 0
-+
-+# signal-augm.S needs hand-coded assembly
-+if {![istarget i*86-*-linux*]
-+    && ![istarget x86_64-*-linux*]
-+    && ![istarget powerpc*-*-linux*]
-+    && ![istarget s390*-*-linux*]} {
-+    return -1;
-+}
-+
-+if [get_compiler_info "ignored"] {
-+    return -1
-+}
-+
-+if {$gcc_compiled == 0} {
-+    return -1
-+}
-+
-+set testfile "signal-augm"
-+
-+set srcbasename ${srcdir}/${subdir}/${testfile}
-+set binfile ${objdir}/${subdir}/${testfile}
-+if { [gdb_compile "${srcbasename}.c ${srcbasename}.S" "${binfile}" executable [list debug "additional_flags=-pthread -fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2"]] != ""} {
-+    return -1;
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+if [target_info exists gdb_stub] {
-+    gdb_step_for_stub;
-+}
-+
-+gdb_test "break fn5" "Breakpoint.*at.*" "breakpoint fn5"
-+
-+set test "stop at fn5"
-+gdb_test_multiple "run -d" "$test" {
-+    -re "received signal" {
-+	send_gdb "continue\n"
-+    }
-+    -re "Breakpoint 1" {
-+	pass "$test"
-+    }
-+}
-+
-+gdb_test "backtrace" ".*\#0 .* fn5 .*\#1 .* fn4 .*\#2 .*signal handler.*\#3 .* fn3 .*\#4 .* fn2 .*\#5 .* fn1 .*\#6 .* tf.*" "$test"
-+
-+return 0
-+
 Index: gdb-6.3/gdb/dwarf2-frame.h
 ===================================================================
 --- gdb-6.3.orig/gdb/dwarf2-frame.h	2006-02-14 17:21:06.000000000 -0200

gdb-6.3-cfaval-20060303.patch:
 gdb/dwarf2-frame.c   |   88 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gdb/dwarf2-frame.h   |    4 ++
 gdb/valarith.c       |    9 ++++-
 include/elf/dwarf2.h |   68 +++++++++++++++++++++++++++++++++++++--
 4 files changed, 164 insertions(+), 5 deletions(-)

Index: gdb-6.3-cfaval-20060303.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb-6.3-cfaval-20060303.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdb-6.3-cfaval-20060303.patch	8 Mar 2006 23:48:02 -0000	1.3
+++ gdb-6.3-cfaval-20060303.patch	27 May 2006 07:34:30 -0000	1.4
@@ -45,13 +45,6 @@
 	* valarith.c (value_binop): Fix result type for the shift
 	operators.
 
-for gdb/testsuite/ChangeLog
-2006-03-07  Alexandre Oliva  <aoliva at redhat.com>
-
-	* gdb.dwarf2/cfa-val-expr.exp: New test.
-	* gdb.dwarf2/cfa-val-expr-1.c, gdb.dwarf2/cfa-val-expr-2.c:
-	Its sources.
-
 Index: gdb-6.3/gdb/dwarf2-frame.c
 ===================================================================
 --- gdb-6.3.orig/gdb/dwarf2-frame.c	2006-03-07 01:45:13.000000000 -0300
@@ -194,599 +187,6 @@
    /* These aren't defined by the DWARF2 CFI specification, but are
       used internally by GDB.  These should be superseeded by
       REG_INDIRECT.  */
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-1.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-1.c	2006-03-07 01:45:13.000000000 -0300
-@@ -0,0 +1,261 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+   Copyright 2006  Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-+
-+   Written by Jakub Jelinek, as testcase for Dwarf3 value expression
-+   support in GCC unwinders.  GDB does not need all of it, since all
-+   we do is to try to get correct backtraces.  No compiler or binutils
-+   support is required.  */
-+
-+/* Test complex CFA value expressions.  */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+		   _Unwind_Exception_Class exc_class,
-+		   struct _Unwind_Exception *exc_obj,
-+		   struct _Unwind_Context *context,
-+		   void *stop_parameter)
-+{
-+  if (actions & _UA_END_OF_STACK)
-+    abort ();
-+  return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+  exc->exception_cleanup = 0;
-+
-+  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+  abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+  ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+  if (count != 2)
-+    abort ();
-+  _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  force_unwind ();
-+  return 0;
-+}
-+
-+void
-+bar (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  fn5 ();
-+}
-+
-+void __attribute__((noinline))
-+foo (int x)
-+{
-+  char buf[256];
-+#ifdef __i386__
-+  __asm (
-+	"testl	%0, %0\n\t"
-+	"jnz	1f\n\t"
-+	".subsection 1\n\t"
-+	".type	_L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t"	"leal	%1, %%ecx\n"
-+"2:\t"	"call	bar\n"
-+"3:\t"	"jmp	18f\n"
-+"4:\t"	".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+	".previous\n\t"
-+	".section	.eh_frame,\"a\", at progbits\n"
-+"5:\t"	".long	7f-6f	# Length of Common Information Entry\n"
-+"6:\t"	".long	0x0	# CIE Identifier Tag\n\t"
-+	".byte	0x1	# CIE Version\n\t"
-+	".ascii \"zR\\0\"	# CIE Augmentation\n\t"
-+	".uleb128 0x1	# CIE Code Alignment Factor\n\t"
-+	".sleb128 -4	# CIE Data Alignment Factor\n\t"
-+	".byte	0x8	# CIE RA Column\n\t"
-+	".uleb128 0x1	# Augmentation size\n\t"
-+	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"
-+	".byte	0xc	# DW_CFA_def_cfa\n\t"
-+	".uleb128 0x4\n\t"
-+	".uleb128 0x0\n\t"
-+	".align 4\n"
-+"7:\t"	".long	17f-8f	# FDE Length\n"
-+"8:\t"	".long	8b-5b	# FDE CIE offset\n\t"
-+	".long	1b-.	# FDE initial location\n\t"
-+	".long	4b-1b	# FDE address range\n\t"
-+	".uleb128 0x0	# Augmentation size\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x8\n\t"
-+	".uleb128 10f-9f\n"
-+"9:\t"	".byte	0x78	# DW_OP_breg8\n\t"
-+	".sleb128 3b-1b\n"
-+"10:\t"	".byte	0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x8\n\t"
-+	".uleb128 12f-11f\n"
-+"11:\t"	".byte	0x78	# DW_OP_breg8\n\t"
-+	".sleb128 3b-2b\n"
-+"12:\t"	".byte	0x40 + (3b-2b-1) # DW_CFA_advance_loc\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x8\n\t"
-+	".uleb128 16f-13f\n"
-+"13:\t"	".byte	0x78	# DW_OP_breg8\n\t"
-+	".sleb128 15f-14f\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"14:\t"	".4byte	3b-.\n\t"
-+	".byte	0x1c	# DW_OP_minus\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"15:\t"	".4byte	18f-.\n\t"
-+	".byte	0x22	# DW_OP_plus\n"
-+"16:\t"	".align 4\n"
-+"17:\t"	".previous\n"
-+"18:"
-+	: : "r" (x), "m" (x), "r" (buf)
-+	: "memory", "eax", "edx", "ecx");
-+#elif defined __x86_64__
-+  __asm (
-+	"testl	%0, %0\n\t"
-+	"jnz	1f\n\t"
-+	".subsection 1\n\t"
-+	".type	_L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t"	"leaq	%1, %%rdi\n"
-+"2:\t"	"subq	$128, %%rsp\n"
-+"3:\t"	"call	bar\n"
-+"4:\t"	"addq	$128, %%rsp\n"
-+"5:\t"	"jmp	24f\n"
-+"6:\t"	".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+	".previous\n\t"
-+	".section	.eh_frame,\"a\", at progbits\n"
-+"7:\t"	".long	9f-8f	# Length of Common Information Entry\n"
-+"8:\t"	".long	0x0	# CIE Identifier Tag\n\t"
-+	".byte	0x1	# CIE Version\n\t"
-+	".ascii \"zR\\0\"	# CIE Augmentation\n\t"
-+	".uleb128 0x1	# CIE Code Alignment Factor\n\t"
-+	".sleb128 -8	# CIE Data Alignment Factor\n\t"
-+	".byte	0x10	# CIE RA Column\n\t"
-+	".uleb128 0x1	# Augmentation size\n\t"
-+	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"
-+	".byte	0x12	# DW_CFA_def_cfa_sf\n\t"
-+	".uleb128 0x7\n\t"
-+	".sleb128 16\n\t"
-+	".align 8\n"
-+"9:\t"	".long	23f-10f	# FDE Length\n"
-+"10:\t"	".long	10b-7b	# FDE CIE offset\n\t"
-+	".long	1b-.	# FDE initial location\n\t"
-+	".long	6b-1b	# FDE address range\n\t"
-+	".uleb128 0x0	# Augmentation size\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 12f-11f\n"
-+"11:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-1b\n"
-+"12:\t"	".byte	0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 14f-13f\n"
-+"13:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-2b\n"
-+"14:\t"	".byte	0x40 + (3b-2b) # DW_CFA_advance_loc\n\t"
-+	".byte	0x0e	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 0\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 16f-15f\n"
-+"15:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-3b\n"
-+"16:\t"	".byte	0x40 + (4b-3b-1) # DW_CFA_advance_loc\n\t"
-+	".byte	0x0e	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 128\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 20f-17f\n"
-+"17:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 19f-18f\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"18:\t"	".4byte	4b-.\n\t"
-+	".byte	0x1c	# DW_OP_minus\n\t"
-+	".byte	0x0d	# DW_OP_const4s\n"
-+"19:\t"	".4byte	24f-.\n\t"
-+	".byte	0x22	# DW_OP_plus\n"
-+"20:\t"	".byte	0x40 + (5b-4b+1) # DW_CFA_advance_loc\n\t"
-+	".byte	0x13	# DW_CFA_def_cfa_offset_sf\n\t"
-+	".sleb128 16\n\t"
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 22f-21f\n"
-+"21:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 4b-5b\n"
-+"22:\t"	".align 8\n"
-+"23:\t"	".previous\n"
-+"24:"
-+	: : "r" (x), "m" (x), "r" (buf)
-+	: "memory", "rax", "rdx", "rcx", "rsi", "rdi",
-+	  "r8", "r9", "r10", "r11");
-+#else
-+# error Unsupported test architecture
-+#endif
-+}
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+  foo (3);
-+  return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+  fn2 ();
-+  return 0;
-+}
-+
-+static void *
-+fn0 (void)
-+{
-+  char dummy __attribute__((cleanup (handler)));
-+  fn1 ();
-+  return 0;
-+}
-+
-+int
-+main (void)
-+{
-+  fn0 ();
-+  return 0;
-+}
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-2.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr-2.c	2006-03-07 01:45:13.000000000 -0300
-@@ -0,0 +1,226 @@
-+/* This testcase is part of GDB, the GNU debugger.
-+
-+   Copyright 2006  Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-+
-+   Written by Jakub Jelinek, as testcase for Dwarf3 value expression
-+   support in GCC unwinders.  GDB does not need all of it, since all
-+   we do is to try to get correct backtraces.  No compiler or binutils
-+   support is required.  */
-+
-+/* Test complex CFA value expressions.  */
-+
-+#include <unwind.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+
-+static _Unwind_Reason_Code
-+force_unwind_stop (int version, _Unwind_Action actions,
-+		   _Unwind_Exception_Class exc_class,
-+		   struct _Unwind_Exception *exc_obj,
-+		   struct _Unwind_Context *context,
-+		   void *stop_parameter)
-+{
-+  if (actions & _UA_END_OF_STACK)
-+    abort ();
-+  return _URC_NO_REASON;
-+}
-+
-+static void
-+force_unwind ()
-+{
-+  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-+  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-+  exc->exception_cleanup = 0;
-+
-+  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-+  abort ();
-+}
-+
-+int count;
-+
-+static void
-+counter (void *p __attribute__((unused)))
-+{
-+  ++count;
-+}
-+
-+static void
-+handler (void *p __attribute__((unused)))
-+{
-+  if (count != 2)
-+    abort ();
-+  _exit (0);
-+}
-+
-+static int __attribute__((noinline))
-+fn5 (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  force_unwind ();
-+  return 0;
-+}
-+
-+void
-+bar (void)
-+{
-+  char dummy __attribute__((cleanup (counter)));
-+  fn5 ();
-+}
-+
-+void __attribute__((noinline))
-+foo (int x)
-+{
-+  char buf[256];
-+#ifdef __x86_64__
-+  __asm (
-+	"testl	%0, %0\n\t"
-+	"jnz	1f\n\t"
-+	".subsection 1\n\t"
-+	".type	_L_mutex_lock_%=, @function\n"
-+"_L_mutex_lock_%=:\n"
-+"1:\t"	"leaq	%1, %%rdi\n"
-+"2:\t"	"subq	$128, %%rsp\n"
-+"3:\t"	"call	bar\n"
-+"4:\t"	"addq	$128, %%rsp\n"
-+"5:\t"	"jmp	21f\n"
-+"6:\t"	".size _L_mutex_lock_%=, .-_L_mutex_lock_%=\n\t"
-+	".previous\n\t"
-+	".section	.eh_frame,\"a\", at progbits\n"
-+"7:\t"	".long	9f-8f	# Length of Common Information Entry\n"
-+"8:\t"	".long	0x0	# CIE Identifier Tag\n\t"
-+	".byte	0x1	# CIE Version\n\t"
-+	".ascii \"zR\\0\"	# CIE Augmentation\n\t"
-+	".uleb128 0x1	# CIE Code Alignment Factor\n\t"
-+	".sleb128 -8	# CIE Data Alignment Factor\n\t"
-+	".byte	0x10	# CIE RA Column\n\t"
-+	".uleb128 0x1	# Augmentation size\n\t"
-+	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"
-+	".byte	0xc	# DW_CFA_def_cfa\n\t"
-+	".uleb128 0x7\n\t"
-+	".uleb128 0x0\n\t"
-+	".align 8\n"
-+"9:\t"	".long	20f-10f	# FDE Length\n"
-+"10:\t"	".long	10b-7b	# FDE CIE offset\n\t"
-+	".long	1b-.	# FDE initial location\n\t"
-+	".long	6b-1b	# FDE address range\n\t"
-+	".uleb128 0x0	# Augmentation size\n\t"
-+	/* This CFA expression computes the address right
-+	   past the jnz instruction above, from %rip somewhere
-+	   within the _L_mutex_lock_%= subsection.  */
-+	".byte	0x16	# DW_CFA_val_expression\n\t"
-+	".uleb128 0x10\n\t"
-+	".uleb128 19f-11f\n"
-+"11:\t"	".byte	0x80	# DW_OP_breg16\n\t"
-+	".sleb128 0\n"
-+"12:\t"	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x94	# DW_OP_deref_size\n\t"
-+	".byte	1\n\t"
-+	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	0x48\n\t"
-+	".byte	0x2e	# DW_OP_ne\n\t"
-+	".byte	0x28	# DW_OP_bra\n\t"
-+	".2byte	16f-13f\n"
-+"13:\t"	".byte	0x13	# DW_OP_drop\n\t"
-+	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 1\n\t"
-+	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x94	# DW_OP_deref_size\n\t"
-+	".byte	1\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	0x81\n\t"
-+	".byte	0x2e	# DW_OP_ne\n\t"
-+	".byte	0x28	# DW_OP_bra\n\t"
-+	".2byte	15f-14f\n"
-+"14:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 3b-2b-1\n\t"
-+	".byte	0x2f	# DW_OP_skip\n\t"
-+	".2byte	12b-15f\n"
-+"15:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 2b-1b-1\n\t"
-+	".byte	0x2f	# DW_OP_skip\n\t"
-+	".2byte	12b-16f\n"
-+"16:\t"	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	0xe8\n\t"
-+	".byte	0x2e	# DW_OP_ne\n\t"
-+	".byte	0x28	# DW_OP_bra\n\t"
-+	".2byte	18f-17f\n"
-+"17:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 4b-3b\n\t"
-+	".byte	0x2f	# DW_OP_skip\n\t"
-+	".2byte	12b-18f\n"
-+"18:\t"	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 1\n\t"
-+	".byte	0x12	# DW_OP_dup\n\t"
-+	".byte	0x94	# DW_OP_deref_size\n\t"
-+	".byte	4\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	72 - (6b-5b) * 8 # (6b-5b) == 5 ? 32 : 56\n\t"
-+	".byte	0x24	# DW_OP_shl\n\t"
-+	".byte	0x08	# DW_OP_const1u\n\t"
-+	".byte	72 - (6b-5b) * 8 # (6b-5b) == 5 ? 32 : 56\n\t"
-+	".byte	0x26	# DW_OP_shra\n\t"
-+	".byte	0x22	# DW_OP_plus\n\t"
-+	".byte	0x23	# DW_OP_plus_uconst\n\t"
-+	".uleb128 6b-5b-1\n"
-+"19:\t"	".byte	0x40 + (3b-1b) # DW_CFA_advance_loc\n\t"
-+	".byte	0xe	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 128\n\t"
-+	".byte	0x40 + (5b-3b) # DW_CFA_advance_loc\n\t"
-+	".byte	0xe	# DW_CFA_def_cfa_offset\n\t"
-+	".uleb128 0\n\t"
-+	".align 8\n"
-+"20:\t"	".previous\n"
-+"21:"
-+	: : "r" (x), "m" (x), "r" (buf)
-+	: "memory", "rax", "rdx", "rcx", "rsi", "rdi",
-+	  "r8", "r9", "r10", "r11");
-+#else
-+# error Unsupported test architecture
-+#endif
-+}
-+
-+static int __attribute__((noinline))
-+fn2 (void)
-+{
-+  foo (3);
-+  return 0;
-+}
-+
-+static int __attribute__((noinline))
-+fn1 (void)
-+{
-+  fn2 ();
-+  return 0;
-+}
-+
-+static void *
-+fn0 (void)
-+{
-+  char dummy __attribute__((cleanup (handler)));
-+  fn1 ();
-+  return 0;
-+}
-+
-+int
-+main (void)
-+{
-+  fn0 ();
-+  return 0;
-+}
-Index: gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr.exp
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.3/gdb/testsuite/gdb.dwarf2/cfa-val-expr.exp	2006-03-07 01:45:13.000000000 -0300
-@@ -0,0 +1,91 @@
-+# Copyright 2006 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
-+
-+# Please email any bugs, comments, and/or additions to this file to:
-+# bug-gdb at gnu.org
-+
-+# This file was written by Alexandre Oliva <aoliva at redhat.com>
-+
-+if $tracelevel then {
-+	strace $tracelevel
-+	}
-+
-+set prms_id 0
-+set bug_id 0
-+
-+# signal-augm.S needs hand-coded assembly
-+if {![istarget i*86-*-linux*]
-+    && ![istarget x86_64-*-linux*]} {
-+    return -1;
-+}
-+
-+if [get_compiler_info "ignored"] {
-+    return -1
-+}
-+
-+if {$gcc_compiled == 0} {
-+    return -1
-+}
-+
-+set tnum 1
-+set testfile "cfa-val-expr-$tnum"
-+
-+set srcfile ${srcdir}/${subdir}/${testfile}.c
-+set binfile ${objdir}/${subdir}/${testfile}
-+if { [gdb_compile "${srcfile}" "${binfile}" executable [list debug "additional_flags=-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2"]] != ""} {
-+    return -1;
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+if [target_info exists gdb_stub] {
-+    gdb_step_for_stub;
-+}
-+
-+gdb_test "break fn5" "Breakpoint.*at.*" "breakpoint fn5 ($tnum)"
-+gdb_test "run" ".*Breakpoint 1.*" "stopped at fn5 ($tnum)"
-+gdb_test "backtrace" ".*\#0 .* fn5 .*\#1 .* bar .*\#2 .* _L_mutex.* .*\#3 .* foo .*\#4 .* fn2 .*\#5 .* fn1 .*\#6 .* main.*" "backtrace ($tnum)"
-+
-+if {![istarget x86_64-*-linux*]} {
-+    return 0;
-+}
-+
-+set tnum 2
-+set testfile "cfa-val-expr-$tnum"
-+
-+set srcfile ${srcdir}/${subdir}/${testfile}.c
-+set binfile ${objdir}/${subdir}/${testfile}
-+if { [gdb_compile "${srcfile}" "${binfile}" executable [list debug "additional_flags=-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2"]] != ""} {
-+    return -1;
-+}
-+
-+gdb_exit
-+gdb_start
-+gdb_reinitialize_dir $srcdir/$subdir
-+gdb_load ${binfile}
-+
-+if [target_info exists gdb_stub] {
-+    gdb_step_for_stub;
-+}
-+
-+gdb_test "break fn5" "Breakpoint.*at.*" "breakpoint fn5 ($tnum)"
-+gdb_test "run" ".*Breakpoint 1.*" "stopped at fn5 ($tnum)"
-+gdb_test "backtrace" ".*\#0 .* fn5 .*\#1 .* bar .*\#2 .* _L_mutex.* .*\#3 .* foo .*\#4 .* fn2 .*\#5 .* fn1 .*\#6 .* main.*" "backtrace ($tnum)"
-+
-+return 0
 Index: gdb-6.3/include/elf/dwarf2.h
 ===================================================================
 --- gdb-6.3.orig/include/elf/dwarf2.h	2006-03-07 01:45:08.000000000 -0300

gdb-6.3-gstack-without-path-20060414.patch:
 gstack.sh |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

Index: gdb-6.3-gstack-without-path-20060414.patch
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb-6.3-gstack-without-path-20060414.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdb-6.3-gstack-without-path-20060414.patch	14 Apr 2006 07:05:50 -0000	1.1
+++ gdb-6.3-gstack-without-path-20060414.patch	27 May 2006 07:34:30 -0000	1.2
@@ -1,7 +1,8 @@
 Index: gdb-6.3/gdb/gstack.sh
---- gdb-6.3/gdb/gstack.sh	2006-01-16 16:41:13.000000000 +0000
-+++ gdb-6.3/gdb/gstack.sh	2006-02-02 09:22:12.000000000 +0000
-@@ -17,17 +17,17 @@
+===================================================================
+--- gdb-6.3.orig/gdb/gstack.sh	2006-02-14 17:21:05.000000000 -0200
++++ gdb-6.3/gdb/gstack.sh	2006-04-14 03:17:12.000000000 -0300
+@@ -17,17 +17,17 @@ fi
  backtrace="bt"
  if test -d /proc/$1/task ; then
      # Newer kernel; has a task/ directory.
@@ -22,7 +23,7 @@
  
  if $GDB -nx --quiet --batch --readnever > /dev/null 2>&1; then
      readnever=--readnever
-@@ -39,7 +39,7 @@
+@@ -39,7 +39,7 @@ fi
  $GDB --quiet $readnever -nx /proc/$1/exe $1 <<EOF 2>&1 | 
  $backtrace
  EOF


Index: gdb.spec
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/gdb.spec,v
retrieving revision 1.178
retrieving revision 1.179
diff -u -r1.178 -r1.179
--- gdb.spec	17 May 2006 13:59:46 -0000	1.178
+++ gdb.spec	27 May 2006 07:34:30 -0000	1.179
@@ -11,7 +11,7 @@
 Version: 6.3.0.0
 
 # The release always contains a leading reserved number, start it at 0.
-Release: 1.129.FC4
+Release: 1.130.FC4
 
 License: GPL
 Group: Development/Debuggers
@@ -281,8 +281,8 @@
 # Use bigger numbers than int.
 Patch176: gdb-6.3-large-core-20051206.patch
 
-# Do not let exceptions in GDB break SIGCHLD blocking.
-Patch177: gdb-6.3-sigchld-exception-20060331.patch
+# Do not let errors related with debug registers break thread debugging.
+Patch177: gdb-6.3-catch-debug-registers-error-20060527.patch
 
 # Hard-code executable names in gstack, such that it can run with a
 # corrupted or missing PATH.
@@ -566,13 +566,19 @@
 # don't include the files in include, they are part of binutils
 
 %changelog
+* Sat May 27 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.130
+- Rewrite patch for BZ 175270, BZ 175083 so as to catch the exception
+earlier.
+- Remove too-fragile testcases from patches for CFA value and "S"
+augmentation.
+
 * Wed May 17 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.129
 - Add not-automatically-generated file to fopen64 patch (BZ 191948).
 
 * Fri Apr 14 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.128
 - Avoid race conditions caused by exceptions messing with signal masks.
 (BZ 175270, BZ 175083, maybe BZ 172938).
-- Hardcode /bin and /usr/bin paths into gstack (BZ 179829).
+- Hardcode /bin and /usr/bin paths into gstack (BZ 179829, BZ 190548).
 - Build in a subdir of the source tree instead of in a sibling directory.
 - Switch to versioning scheme that uses the same base revision number
 for all OSes, and uses a suffix to tell the builds apart and ensure
@@ -582,15 +588,16 @@
 - Bump up release number.
 
 * Thu Apr 13 2006 Stepan Kasal <skasal at redhat.com>    - 6.3.0.0-1.123
-- Use fopen64 where available.  Fixes BZ 178796.
-- Use bigger numbers than int.  Fixes BZ 171783.
+- Use fopen64 where available.  Fixes BZ 178796, BZ 190547.
+- Use bigger numbers than int.  Fixes BZ 171783, BZ 179096.
 
 * Wed Mar  8 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.122
 - Bump up release number.
 
 * Wed Mar  8 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.119
-- Fix regression in PIE debugging (BZ 133944) (re?)introduced by
-the prelink fix (BZ 175075).  Improve testcase for the prelink fix.
+- Fix regression in PIE debugging (BZ 133944) (re?)introduced by the
+prelink fix (BZ 175075, BZ 190545).  Improve testcase for the prelink
+fix.
 - Revert dwarf2 frame identifier change.
 
 * Tue Mar  7 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.118
@@ -617,7 +624,7 @@
 
 * Thu Feb 23 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.107
 - Enable gdb to debug core files and executables with mismatched
-prelink base addresses.  Fixes BZ 175075.
+prelink base addresses.  Fixes BZ 175075, BZ 190545.
 
 * Tue Feb 14 2006 Alexandre Oliva <aoliva at redhat.com> - 6.3.0.0-1.106
 - Bump up release number.


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gdb/FC-4/sources,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- sources	3 Apr 2005 00:30:15 -0000	1.18
+++ sources	27 May 2006 07:34:30 -0000	1.19
@@ -1,2 +1 @@
 05b928f41fa5b482e49ca2c24762a0ae  gdb-6.3.tar.bz2
-53ec99f09e771b542af4cdb8d2a39fd5  gdb-6.3.50.20050401.tar.bz2


--- gdb-6.3-sigchld-exception-20060331.patch DELETED ---




More information about the fedora-cvs-commits mailing list