diff --git a/gdb-6.7-bz428882-ia64-fix.patch b/gdb-6.7-bz428882-ia64-fix.patch new file mode 100644 index 0000000..97a4cdc --- /dev/null +++ b/gdb-6.7-bz428882-ia64-fix.patch @@ -0,0 +1,61 @@ +diff -up gdb-6.7.1/gdb/ia64-tdep.c.broken gdb-6.7.1/gdb/ia64-tdep.c +--- gdb-6.7.1/gdb/ia64-tdep.c.broken 2008-01-15 15:13:54.558100457 -0500 ++++ gdb-6.7.1/gdb/ia64-tdep.c 2008-01-15 15:14:23.701740030 -0500 +@@ -2009,6 +2009,7 @@ ia64_sigtramp_frame_prev_register (struc + { + char dummy_valp[MAX_REGISTER_SIZE]; + char buf[MAX_REGISTER_SIZE]; ++ int nat_bit; + + struct ia64_frame_cache *cache = + ia64_sigtramp_frame_cache (next_frame, this_cache); +@@ -2088,7 +2089,6 @@ ia64_sigtramp_frame_prev_register (struc + /* Compute address of nat collection bits */ + CORE_ADDR nat_collection; + nat_addr = gr_addr | 0x1f8; +- int nat_bit; + /* If our nat collection address is bigger than bsp, we have to get + the nat collection from rnat. Otherwise, we fetch the nat + collection from the computed address. FIXME: Do not know if +diff -up gdb-6.7.1/gdb/libunwind-frame.c.broken gdb-6.7.1/gdb/libunwind-frame.c +--- gdb-6.7.1/gdb/libunwind-frame.c.broken 2008-01-15 15:39:32.341093035 -0500 ++++ gdb-6.7.1/gdb/libunwind-frame.c 2008-01-15 15:48:25.254244213 -0500 +@@ -133,7 +133,7 @@ static struct libunwind_frame_cache * + libunwind_frame_cache (struct frame_info *next_frame, void **this_cache) + { + unw_accessors_t *acc; +- unw_addr_space_t as; ++ unw_addr_space_t as = NULL; + unw_cursor_t *cursor_addr; + unw_word_t fp, sp; + unw_regnum_t uw_sp_regnum; +diff -up gdb-6.7.1/gdb/ia64-linux-nat.c.broken gdb-6.7.1/gdb/ia64-linux-nat.c +--- gdb-6.7.1/gdb/ia64-linux-nat.c.broken 2008-01-15 15:23:11.933209405 -0500 ++++ gdb-6.7.1/gdb/ia64-linux-nat.c 2008-01-15 15:38:42.846709176 -0500 +@@ -661,7 +661,7 @@ ia64_linux_remove_watchpoint_callback (s + struct linux_watchpoint *args = (struct linux_watchpoint *)data; + + return ia64_linux_remove_one_watchpoint (lwp->ptid, args->addr, +- args->len); ++ args->len, args->type); + } + + /* TO_FOLLOW_FORK stores here the PID under DETACH_BREAKPOINTS for the child +@@ -672,7 +672,7 @@ static int ia64_linux_detach_breakpoints + + /* Remove a watchpoint for all threads. */ + static int +-ia64_linux_remove_watchpoint (CORE_ADDR addr, int len) ++ia64_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw) + { + struct linux_watchpoint args; + +@@ -925,7 +925,7 @@ ia64_linux_save_sigtrap_info (void *queu + if (lp->saved_trap_data == NULL) + lp->saved_trap_data = xmalloc (sizeof(struct siginfo)); + +- ptrace (PTRACE_GETSIGINFO, ptid_get_lwp (lp->ptid), (PTRACE_ARG3_TYPE) 0, ++ ptrace (PTRACE_GETSIGINFO, ptid_get_lwp (lp->ptid), (PTRACE_TYPE_ARG3) 0, + lp->saved_trap_data); + } + diff --git a/gdb-6.7-kernel-headers-compat.patch b/gdb-6.7-kernel-headers-compat.patch new file mode 100644 index 0000000..f169b78 --- /dev/null +++ b/gdb-6.7-kernel-headers-compat.patch @@ -0,0 +1,24 @@ +kernel-headers-2.6.25-0.40.rc1.git2.fc9.x86_64 + +In file included from /usr/include/asm/ptrace.h:4, + from ../../gdb/amd64-linux-nat.c:44: +/usr/include/asm/ptrace-abi.h:92: error: expected specifier-qualifier-list before ‘u32’ + +--- gdb-6.7.1-13.fc9.x86_64/gdb/amd64-linux-nat.c-orig 2008-02-15 15:37:28.000000000 -0500 ++++ gdb-6.7.1-13.fc9.x86_64/gdb/amd64-linux-nat.c 2008-02-15 15:40:13.000000000 -0500 +@@ -35,13 +35,13 @@ + #include + #include + /* FIXME ezannoni-2003-07-09: we need to be included after +- because the latter redefines FS and GS for no apparent ++ because the latter redefines FS and GS for no apparent + reason, and those definitions don't match the ones that libpthread_db + uses, which come from . */ + /* ezannoni-2003-07-09: I think this is fixed. The extraneous defs have + been removed from ptrace.h in the kernel. However, better safe than + sorry. */ +-#include ++#include + #include + #include "gdb_proc_service.h" + diff --git a/gdb-gstack.man b/gdb-gstack.man new file mode 100644 index 0000000..1f4e406 --- /dev/null +++ b/gdb-gstack.man @@ -0,0 +1,48 @@ +.\" +.\" gstack manual page. +.\" Copyright (c) 1999 Ross Thompson +.\" Copyright (c) 2001, 2002, 2004, 2008 Red Hat, Inc. +.\" +.\" Original author: Ross Thompson +.\" +.\" 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, 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; see the file COPYING. If not, write to +.\" the Free Software Foundation, 59 Temple Place - Suite 330, +.\" Boston, MA 02111-1307, USA. +.\" +.TH GSTACK 1 "Feb 15 2008" "Red Hat Linux" "Linux Programmer's Manual" + +.SH NAME +gstack \- print a stack trace of a running process + +.SH SYNOPSIS +.B gstack +pid + +.SH DESCRIPTION + +\f3gstack\f1 attaches to the active process named by the \f3pid\f1 on +the command line, and prints out an execution stack trace. If ELF +symbols exist in the binary (usually the case unless you have run +strip(1)), then symbolic addresses are printed as well. + +If the process is part of a thread group, then \f3gstack\f1 will print +out a stack trace for each of the threads in the group. + +.SH SEE ALSO +nm(1), ptrace(2), gdb(1) + +.SH AUTHORS +Ross Thompson + +Red Hat, Inc. diff --git a/gdb.spec b/gdb.spec index 6c307a1..eed2f7e 100644 --- a/gdb.spec +++ b/gdb.spec @@ -11,7 +11,7 @@ Name: gdb Version: 6.7.1 # The release always contains a leading reserved number, start it at 1. -Release: 12%{?dist} +Release: 13%{?dist} License: GPL Group: Development/Debuggers @@ -29,6 +29,10 @@ URL: http://gnu.org/software/gdb/ Obsoletes: gdb64 < 5.3.91 %endif +# The last Rawhide release was (no dist tag) pstack-1.2-7.2.2 +Obsoletes: pstack < 1.2-7.2.2.1 +Provides: pstack = 1.2-7.2.2.1 + # GDB patches have the format gdb--bz-.patch; # should include the ChangeLog.RedHat change-log entry; and should be # created using diff -u ./gdb (not gdb-6.3/gdb). @@ -50,6 +54,8 @@ Patch4: gdb-6.3-rh-testlibunwind1fix-20041202.patch # Cleanup any leftover testsuite processes as it may stuck mock(1) builds. Source2: gdb-orphanripper.c +# Man page for gstack(1). +Source3: gdb-gstack.man # ------------------------------------------ @@ -349,6 +355,12 @@ Patch298: gdb-6.6-threads-static-test.patch # Fix false `(no debugging symbols found)' on `-readnever' runs. Patch301: gdb-6.6-buildid-readnever-silent.patch +# ia64 build fixes from Doug Chapman (BZ 428882). +Patch303: gdb-6.7-bz428882-ia64-fix.patch + +# Fix #include on kernel-headers-2.6.25-0.40.rc1.git2.fc9.x86_64. +Patch304: gdb-6.7-kernel-headers-compat.patch + BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext BuildRequires: flex bison sharutils expat-devel Requires: readline @@ -387,6 +399,17 @@ GDB, the GNU debugger, allows you to debug programs written in C, C++, Java, and other languages, by executing them in a controlled fashion and printing their data. +%package gdbserver +Summary: A standalone server for GDB (the GNU source-level debugger) +Group: Development/Debuggers + +%description gdbserver +GDB, the GNU debugger, allows you to debug programs written in C, C++, +Java, and other languages, by executing them in a controlled fashion +and printing their data. + +This package provides a program that allows you to run GDB on a different machine than the one which is running the program being debugged. + %prep # This allows the tarball name to be different from our @@ -504,6 +527,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch296 -p1 %patch298 -p1 %patch301 -p1 +%patch303 -p1 +%patch304 -p1 # Change the version that gets printed at GDB startup, so it is RedHat # specific. @@ -554,6 +579,7 @@ enable_build_warnings="$enable_build_warnings,-Werror" --infodir=%{_infodir} \ $enable_build_warnings \ --with-separate-debug-dir=/usr/lib/debug \ + --disable-sim \ --disable-rpath \ --with-system-readline \ %ifarch ia64 @@ -628,6 +654,12 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/lib{bfd*,opcodes*,iberty*,mmalloc*} rm -f $RPM_BUILD_ROOT%{_infodir}/dir +# pstack obsoletion + +cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/gstack.1 +ln -s gstack.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/pstack.1.gz +ln -s gstack $RPM_BUILD_ROOT%{_bindir}/pstack + %clean rm -rf $RPM_BUILD_ROOT @@ -651,8 +683,15 @@ fi %files %defattr(-,root,root) %doc COPYING COPYING.LIB README NEWS -/usr/bin/* -%{_mandir}/*/* +%{_bindir}/gcore +%{_bindir}/gdb +%{_bindir}/gdbtui +%{_bindir}/gstack +%{_bindir}/pstack +%{_mandir}/*/gdb.1* +%{_mandir}/*/gdbtui.1* +%{_mandir}/*/gstack.1* +%{_mandir}/*/pstack.1* %{_infodir}/annotate.info* %{_infodir}/gdb.info* %{_infodir}/gdbint.info* @@ -660,7 +699,18 @@ fi # don't include the files in include, they are part of binutils +%files gdbserver +%{_bindir}/gdbserver +%{_mandir}/*/gdbserver.1* + %changelog +* Wed Feb 20 2008 Jan Kratochvil - 6.7.1-13 +- ia64 build fixes from Doug Chapman (BZ 428882). +- gdbserver separated into an extra package (BZ 405791). +- pstack obsoleted by included gstack (BZ 197020). +- Fix #include on kernel-headers-2.6.25-0.40.rc1.git2.fc9.x86_64. +- Drop the PowerPC simulator as no longer being compatible with Fedora binaries. + * Thu Feb 7 2008 Jan Kratochvil - 6.7.1-12 - build-id debug messages print now the library names unconditionally.