diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch
index 0aa6426..e38ddd3 100644
--- a/gdb-6.3-gstack-20050411.patch
+++ b/gdb-6.3-gstack-20050411.patch
@@ -4,10 +4,9 @@
to install and uninstall.
* gstack.sh, gstack.1: New files.
-Index: gdb-6.8.91.20090917/gdb/Makefile.in
-===================================================================
---- gdb-6.8.91.20090917.orig/gdb/Makefile.in 2009-09-17 12:47:07.000000000 +0200
-+++ gdb-6.8.91.20090917/gdb/Makefile.in 2009-09-17 12:47:38.000000000 +0200
+diff -up -ruNp gdb-7.0.1-empty/gdb/Makefile.in gdb-7.0.1/gdb/Makefile.in
+--- gdb-7.0.1-empty/gdb/Makefile.in 2010-04-07 20:36:04.000000000 +0200
++++ gdb-7.0.1/gdb/Makefile.in 2010-04-07 20:36:42.000000000 +0200
@@ -989,7 +989,7 @@ install: all install-only
# The "install-only" target also installs the syscalls' XML files in
@@ -63,10 +62,9 @@ Index: gdb-6.8.91.20090917/gdb/Makefile.in
# The C++ name parser can be built standalone for testing.
test-cp-name-parser.o: cp-name-parser.c
-Index: gdb-6.8.91.20090917/gdb/gstack.sh
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gdb-6.8.91.20090917/gdb/gstack.sh 2009-09-17 12:47:14.000000000 +0200
+diff -up -ruNp gdb-7.0.1-empty/gdb/gstack.sh gdb-7.0.1/gdb/gstack.sh
+--- gdb-7.0.1-empty/gdb/gstack.sh 1970-01-01 01:00:00.000000000 +0100
++++ gdb-7.0.1/gdb/gstack.sh 2010-04-07 20:36:47.000000000 +0200
@@ -0,0 +1,48 @@
+#!/bin/sh
+
@@ -87,17 +85,17 @@ Index: gdb-6.8.91.20090917/gdb/gstack.sh
+backtrace="bt"
+if test -d /proc/$1/task ; then
+ # Newer kernel; has a task/ directory.
-+ if test `ls /proc/$1/task | wc -l` -gt 1 2>/dev/null ; then
++ if test `/bin/ls /proc/$1/task | /usr/bin/wc -l` -gt 1 2>/dev/null ; then
+ backtrace="thread apply all bt"
+ fi
+elif test -f /proc/$1/maps ; then
+ # Older kernel; go by it loading libpthread.
-+ if grep -e libpthread /proc/$1/maps > /dev/null 2>&1 ; then
++ if /bin/grep -e libpthread /proc/$1/maps > /dev/null 2>&1 ; then
+ backtrace="thread apply all bt"
+ fi
+fi
+
-+GDB=${GDB:-gdb}
++GDB=${GDB:-/usr/bin/gdb}
+
+if $GDB -nx --quiet --batch --readnever > /dev/null 2>&1; then
+ readnever=--readnever
@@ -112,7 +110,127 @@ Index: gdb-6.8.91.20090917/gdb/gstack.sh
+set pagination no
+$backtrace
+EOF
-+sed -n \
-+ -e 's/^(gdb) //' \
++/bin/sed -n \
++ -e 's/^\((gdb) \)*//' \
+ -e '/^#/p' \
+ -e '/^Thread/p'
+--- /dev/null 2010-04-07 06:20:52.289994508 +0200
++++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.exp 2010-04-07 21:53:57.000000000 +0200
+@@ -0,0 +1,71 @@
++# Copyright (C) 2010 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 .
++
++set testfile gstack
++set executable ${testfile}
++set binfile ${objdir}/${subdir}/$executable
++if {[build_executable ${testfile} ${executable} "" {debug}] == -1} {
++ return -1
++}
++
++set test "spawn inferior"
++set command "${binfile}"
++set res [remote_spawn host $command];
++if { $res < 0 || $res == "" } {
++ perror "Spawning $command failed."
++ fail $test
++ return
++}
++set pid [exp_pid -i $res]
++gdb_expect {
++ -re "looping\r\n" {
++ pass $test
++ }
++ eof {
++ fail "$test (eof)"
++ return
++ }
++ timeout {
++ fail "$test (timeout)"
++ return
++ }
++}
++gdb_exit
++
++# Testcase uses the most simple notification not to get caught by attach on
++# exiting the function. Still we could retry the gstack command if we fail.
++
++set test "spawn gstack"
++set command "sh -c GDB=$GDB\\ sh\\ ${srcdir}/../gstack.sh\\ $pid\\;echo\\ GSTACK-END"
++set res [remote_spawn host $command];
++if { $res < 0 || $res == "" } {
++ perror "Spawning $command failed."
++ fail $test
++}
++set pid [exp_pid -i $res]
++gdb_expect {
++ -re {^#0 +0x[0-9a-f]+ in func \(\)\r\n#1 +0x[0-9a-f]+ in main \(\)\r\nGSTACK-END\r\n$} {
++ pass $test
++ }
++ eof {
++ fail "$test (eof)"
++ }
++ timeout {
++ fail "$test (timeout)"
++ }
++}
++gdb_exit
++
++remote_exec host "kill -9 $pid"
+--- /dev/null 2010-04-07 06:20:52.289994508 +0200
++++ gdb-7.0.1/gdb/testsuite/gdb.base/gstack.c 2010-04-07 21:46:52.000000000 +0200
+@@ -0,0 +1,43 @@
++/* This testcase is part of GDB, the GNU debugger.
++
++ Copyright 2005, 2007, 2008, 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 . */
++
++#include
++#include
++#include
++
++void
++func (void)
++{
++ const char msg[] = "looping\n";
++
++ /* Use the most simple notification not to get caught by attach on exiting
++ the function. */
++ write (1, msg, strlen (msg));
++
++ for (;;);
++}
++
++int
++main (void)
++{
++ alarm (60);
++ nice (100);
++
++ func ();
++
++ return 0;
++}
diff --git a/gdb-6.3-gstack-without-path-20060414.patch b/gdb-6.3-gstack-without-path-20060414.patch
deleted file mode 100644
index 677f934..0000000
--- a/gdb-6.3-gstack-without-path-20060414.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: gdb-6.3/gdb/gstack.sh
-===================================================================
---- 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.
-- if test `ls /proc/$1/task | wc -l` -gt 1 2>/dev/null ; then
-+ if test `/bin/ls /proc/$1/task | /usr/bin/wc -l` -gt 1 2>/dev/null ; then
- backtrace="thread apply all bt"
- fi
- elif test -f /proc/$1/maps ; then
- # Older kernel; go by it loading libpthread.
-- if grep -e libpthread /proc/$1/maps > /dev/null 2>&1 ; then
-+ if /bin/grep -e libpthread /proc/$1/maps > /dev/null 2>&1 ; then
- backtrace="thread apply all bt"
- fi
- fi
-
--GDB=${GDB:-gdb}
-+GDB=${GDB:-/usr/bin/gdb}
-
- if $GDB -nx --quiet --batch --readnever > /dev/null 2>&1; then
- readnever=--readnever
-@@ -39,7 +39,7 @@ fi
- set pagination no
- $backtrace
- EOF
--sed -n \
-+/bin/sed -n \
- -e 's/^(gdb) //' \
- -e '/^#/p' \
- -e '/^Thread/p'
diff --git a/gdb.spec b/gdb.spec
index 544b050..8075cb3 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -36,7 +36,7 @@ Version: 7.1
# 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: 8%{?_with_upstream:.upstream}%{dist}
+Release: 9%{?_with_upstream:.upstream}%{dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and GFDL and BSD and Public Domain
Group: Development/Debuggers
@@ -183,10 +183,6 @@ Patch170: gdb-6.3-bt-past-zero-20051201.patch
# Use bigger numbers than int.
Patch176: gdb-6.3-large-core-20051206.patch
-# Hard-code executable names in gstack, such that it can run with a
-# corrupted or missing PATH.
-Patch177: gdb-6.3-gstack-without-path-20060414.patch
-
# Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661).
Patch188: gdb-6.5-bz203661-emit-relocs.patch
@@ -625,7 +621,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch169 -p1
%patch170 -p1
%patch176 -p1
-%patch177 -p1
%patch188 -p1
%patch190 -p1
%patch194 -p1
@@ -1055,6 +1050,11 @@ fi
%endif
%changelog
+* Wed Apr 7 2010 Jan Kratochvil - 7.1-9.fc13
+- Fix gstack to print even the frame #0. New gdb.base/gstack.exp. (BZ 579793)
+- Merge gdb-6.3-gstack-without-path-20060414.p* into gdb-6.3-gstack-20050411.p*,
+ no real code change.
+
* Mon Apr 5 2010 Jan Kratochvil - 7.1-8.fc13
- Fix breakpoint at *_start (BZ 162775, bugreport by John Reiser).