From 803b8bdf52ab04e0dc9266417b4d641f98944483 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sat, 30 Dec 2006 20:59:07 +0000 Subject: [PATCH] - Fix unwinding crash on older gcj(1) code (extended CFI support) (BZ 165025). - Include testcase for the readline history of input mode commands (BZ 215816). - Related: rhbz#165025 rhbz#215816 --- ...CFA_GNU_negative_offset_extended-fix.patch | 30 ++ ...FA_GNU_negative_offset_extended-test.patch | 509 ++++++++++++++++++ ...bz215816-readline-from-callback-test.patch | 97 ++++ gdb.spec | 14 +- 4 files changed, 649 insertions(+), 1 deletion(-) create mode 100644 gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch create mode 100644 gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch create mode 100644 gdb-6.5-bz215816-readline-from-callback-test.patch diff --git a/gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch b/gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch new file mode 100644 index 0000000..3425c1f --- /dev/null +++ b/gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch @@ -0,0 +1,30 @@ +2006-12-30 Andrew Cagney + Jan Kratochvil + + * dwarf2-frame.c (execute_cfa_program): New support of + `DW_CFA_GNU_negative_offset_extended'. + + +Index: ./gdb/dwarf2-frame.c +=================================================================== +RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v +retrieving revision 1.64 +diff -u -p -r1.64 dwarf2-frame.c +--- ./gdb/dwarf2-frame.c 28 Nov 2006 17:28:29 -0000 1.64 ++++ ./gdb/dwarf2-frame.c 30 Dec 2006 18:24:58 -0000 +@@ -555,6 +555,15 @@ bad CFI data; mismatched DW_CFA_restore_ + insn_ptr = read_uleb128 (insn_ptr, insn_end, &utmp); + break; + ++ case DW_CFA_GNU_negative_offset_extended: ++ insn_ptr = read_uleb128 (insn_ptr, insn_end, ®); ++ insn_ptr = read_uleb128 (insn_ptr, insn_end, &offset); ++ offset *= fs->data_align; ++ dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1); ++ fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET; ++ fs->regs.reg[reg].loc.offset = -offset; ++ break; ++ + default: + internal_error (__FILE__, __LINE__, _("Unknown CFI encountered.")); + } diff --git a/gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch b/gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch new file mode 100644 index 0000000..03a3656 --- /dev/null +++ b/gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch @@ -0,0 +1,509 @@ +2006-12-30 Jan Kratochvil + + * gdb.arch/i386-gnu-cfi.exp, gdb.arch/i386-gnu-cfi.c, + gdb.arch/i386-gnu-cfi-asm.S: New files. + + +Index: ./gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S +=================================================================== +RCS file: ./gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S +diff -N ./gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ ./gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S 30 Dec 2006 18:25:02 -0000 +@@ -0,0 +1,357 @@ ++/* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * Please email any bugs, comments, and/or additions to this file to: ++ * bug-gdb@gnu.org ++ * ++ * This file is part of the gdb testsuite. ++ * ++ * It was generated using ++ * "gcc -g -O9 -S -o gate.s gate.c -fasynchronous-unwind-tables", ++ * using the following source file: ++ * ++ * ++ * void *gate (void *(*gate) (void *data), void *data) ++ * { ++ * return 1 + (*gate) (data); ++ * } ++ * ++ * Changes are marked as `CHANGE' below. ++ */ ++ ++ .file "gate.c" ++ .section .debug_abbrev,"",@progbits ++.Ldebug_abbrev0: ++ .section .debug_info,"",@progbits ++.Ldebug_info0: ++ .section .debug_line,"",@progbits ++.Ldebug_line0: ++ .text ++.Ltext0: ++ .p2align 4,,15 ++.globl gate ++ .type gate, @function ++gate: ++.LFB2: ++ .file 1 "gate.c" ++ .loc 1 2 0 ++.LVL0: ++ pushl %ebp ++.LCFI0: ++ movl %esp, %ebp ++.LCFI1: ++ subl $8, %esp ++.LCFI2: ++ .loc 1 3 0 ++ movl 12(%ebp), %eax ++ movl %eax, (%esp) ++ call *8(%ebp) ++ .loc 1 4 0 ++ leave ++ .loc 1 3 0 ++ addl $1, %eax ++ .loc 1 4 0 ++ ret ++.LFE2: ++ .size gate, .-gate ++ .section .debug_frame,"",@progbits ++.Lframe0: ++ .long .LECIE0-.LSCIE0 ++.LSCIE0: ++ .long 0xffffffff ++ .byte 0x1 ++ .string "" ++ .uleb128 0x1 ++ .sleb128 -4 ++ .byte 0x8 ++ .byte 0xc ++ .uleb128 0x4 ++ .uleb128 0x4 ++ .byte 0x88 ++ .uleb128 0x1 ++ .align 4 ++.LECIE0: ++.LSFDE0: ++ .long .LEFDE0-.LASFDE0 ++.LASFDE0: ++ .long .Lframe0 ++ .long .LFB2 ++ .long .LFE2-.LFB2 ++ .byte 0x4 ++ .long .LCFI0-.LFB2 ++ .byte 0xe ++ .uleb128 0x8 ++ .byte 0x85 ++ .uleb128 0x2 ++ ++ /* CHANGE */ ++ .byte 0x2f ++ .uleb128 0x1 ++ .uleb128 0x0 ++ /* CHANGE */ ++ ++ .byte 0x4 ++ .long .LCFI1-.LCFI0 ++ .byte 0xd ++ .uleb128 0x5 ++ .align 4 ++.LEFDE0: ++ .section .eh_frame,"a",@progbits ++.Lframe1: ++ .long .LECIE1-.LSCIE1 ++.LSCIE1: ++ .long 0x0 ++ .byte 0x1 ++ .string "" ++ .uleb128 0x1 ++ .sleb128 -4 ++ .byte 0x8 ++ .byte 0xc ++ .uleb128 0x4 ++ .uleb128 0x4 ++ .byte 0x88 ++ .uleb128 0x1 ++ .align 4 ++.LECIE1: ++.LSFDE1: ++ .long .LEFDE1-.LASFDE1 ++.LASFDE1: ++ .long .LASFDE1-.Lframe1 ++ .long .LFB2 ++ .long .LFE2-.LFB2 ++ .byte 0x4 ++ .long .LCFI0-.LFB2 ++ .byte 0xe ++ .uleb128 0x8 ++ .byte 0x85 ++ .uleb128 0x2 ++ ++ /* CHANGE */ ++ .byte 0x2f ++ .uleb128 0x1 ++ .uleb128 0x0 ++ /* CHANGE */ ++ ++ .byte 0x4 ++ .long .LCFI1-.LCFI0 ++ .byte 0xd ++ .uleb128 0x5 ++ .align 4 ++.LEFDE1: ++ .text ++.Letext0: ++ .section .debug_loc,"",@progbits ++.Ldebug_loc0: ++.LLST0: ++ .long .LFB2-.Ltext0 ++ .long .LCFI0-.Ltext0 ++ .value 0x2 ++ .byte 0x74 ++ .sleb128 4 ++ .long .LCFI0-.Ltext0 ++ .long .LCFI1-.Ltext0 ++ .value 0x2 ++ .byte 0x74 ++ .sleb128 8 ++ .long .LCFI1-.Ltext0 ++ .long .LFE2-.Ltext0 ++ .value 0x2 ++ .byte 0x75 ++ .sleb128 8 ++ .long 0x0 ++ .long 0x0 ++ .section .debug_info ++ .long 0x74 ++ .value 0x2 ++ .long .Ldebug_abbrev0 ++ .byte 0x4 ++ .uleb128 0x1 ++ .long .Ldebug_line0 ++ .long .Letext0 ++ .long .Ltext0 ++ .long .LASF2 ++ .byte 0x1 ++ .long .LASF3 ++ .long .LASF4 ++ .uleb128 0x2 ++ .long 0x5f ++ .byte 0x1 ++ .long .LASF0 ++ .byte 0x1 ++ .byte 0x2 ++ .byte 0x1 ++ .long 0x5f ++ .long .LFB2 ++ .long .LFE2 ++ .long .LLST0 ++ .uleb128 0x3 ++ .long .LASF0 ++ .byte 0x1 ++ .byte 0x1 ++ .long 0x71 ++ .byte 0x2 ++ .byte 0x91 ++ .sleb128 0 ++ .uleb128 0x3 ++ .long .LASF1 ++ .byte 0x1 ++ .byte 0x1 ++ .long 0x5f ++ .byte 0x2 ++ .byte 0x91 ++ .sleb128 4 ++ .byte 0x0 ++ .uleb128 0x4 ++ .byte 0x4 ++ .uleb128 0x5 ++ .long 0x71 ++ .byte 0x1 ++ .long 0x5f ++ .uleb128 0x6 ++ .long 0x5f ++ .byte 0x0 ++ .uleb128 0x7 ++ .byte 0x4 ++ .long 0x61 ++ .byte 0x0 ++ .section .debug_abbrev ++ .uleb128 0x1 ++ .uleb128 0x11 ++ .byte 0x1 ++ .uleb128 0x10 ++ .uleb128 0x6 ++ .uleb128 0x12 ++ .uleb128 0x1 ++ .uleb128 0x11 ++ .uleb128 0x1 ++ .uleb128 0x25 ++ .uleb128 0xe ++ .uleb128 0x13 ++ .uleb128 0xb ++ .uleb128 0x3 ++ .uleb128 0xe ++ .uleb128 0x1b ++ .uleb128 0xe ++ .byte 0x0 ++ .byte 0x0 ++ .uleb128 0x2 ++ .uleb128 0x2e ++ .byte 0x1 ++ .uleb128 0x1 ++ .uleb128 0x13 ++ .uleb128 0x3f ++ .uleb128 0xc ++ .uleb128 0x3 ++ .uleb128 0xe ++ .uleb128 0x3a ++ .uleb128 0xb ++ .uleb128 0x3b ++ .uleb128 0xb ++ .uleb128 0x27 ++ .uleb128 0xc ++ .uleb128 0x49 ++ .uleb128 0x13 ++ .uleb128 0x11 ++ .uleb128 0x1 ++ .uleb128 0x12 ++ .uleb128 0x1 ++ .uleb128 0x40 ++ .uleb128 0x6 ++ .byte 0x0 ++ .byte 0x0 ++ .uleb128 0x3 ++ .uleb128 0x5 ++ .byte 0x0 ++ .uleb128 0x3 ++ .uleb128 0xe ++ .uleb128 0x3a ++ .uleb128 0xb ++ .uleb128 0x3b ++ .uleb128 0xb ++ .uleb128 0x49 ++ .uleb128 0x13 ++ .uleb128 0x2 ++ .uleb128 0xa ++ .byte 0x0 ++ .byte 0x0 ++ .uleb128 0x4 ++ .uleb128 0xf ++ .byte 0x0 ++ .uleb128 0xb ++ .uleb128 0xb ++ .byte 0x0 ++ .byte 0x0 ++ .uleb128 0x5 ++ .uleb128 0x15 ++ .byte 0x1 ++ .uleb128 0x1 ++ .uleb128 0x13 ++ .uleb128 0x27 ++ .uleb128 0xc ++ .uleb128 0x49 ++ .uleb128 0x13 ++ .byte 0x0 ++ .byte 0x0 ++ .uleb128 0x6 ++ .uleb128 0x5 ++ .byte 0x0 ++ .uleb128 0x49 ++ .uleb128 0x13 ++ .byte 0x0 ++ .byte 0x0 ++ .uleb128 0x7 ++ .uleb128 0xf ++ .byte 0x0 ++ .uleb128 0xb ++ .uleb128 0xb ++ .uleb128 0x49 ++ .uleb128 0x13 ++ .byte 0x0 ++ .byte 0x0 ++ .byte 0x0 ++ .section .debug_pubnames,"",@progbits ++ .long 0x17 ++ .value 0x2 ++ .long .Ldebug_info0 ++ .long 0x78 ++ .long 0x25 ++ .string "gate" ++ .long 0x0 ++ .section .debug_aranges,"",@progbits ++ .long 0x1c ++ .value 0x2 ++ .long .Ldebug_info0 ++ .byte 0x4 ++ .byte 0x0 ++ .value 0x0 ++ .value 0x0 ++ .long .Ltext0 ++ .long .Letext0-.Ltext0 ++ .long 0x0 ++ .long 0x0 ++ .section .debug_str,"MS",@progbits,1 ++.LASF1: ++ .string "data" ++.LASF0: ++ .string "gate" ++.LASF3: ++ .string "gate.c" ++.LASF4: ++ .string "/home/jkratoch/redhat/bz165025" ++.LASF2: ++ .string "GNU C 4.1.1 20061213 (Red Hat 4.1.1-46)" ++ .ident "GCC: (GNU) 4.1.1 20061213 (Red Hat 4.1.1-46)" ++ .section .note.GNU-stack,"",@progbits +Index: ./gdb/testsuite/gdb.arch/i386-gnu-cfi.c +=================================================================== +RCS file: ./gdb/testsuite/gdb.arch/i386-gnu-cfi.c +diff -N ./gdb/testsuite/gdb.arch/i386-gnu-cfi.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ ./gdb/testsuite/gdb.arch/i386-gnu-cfi.c 30 Dec 2006 18:25:02 -0000 +@@ -0,0 +1,31 @@ ++/* Unwinding of DW_CFA_GNU_negative_offset_extended test program. ++ ++ Copyright 2006, Free Software Foundation, Inc. ++ ++ This file is part of GDB. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* i386-gnu-cfi-asm.S: */ ++extern void *gate (void *(*gate) (void *data), void *data); ++ ++int main (void) ++{ ++ gate ((void *(*) (void *data)) abort, NULL); ++ return 0; ++} +Index: ./gdb/testsuite/gdb.arch/i386-gnu-cfi.exp +=================================================================== +RCS file: ./gdb/testsuite/gdb.arch/i386-gnu-cfi.exp +diff -N ./gdb/testsuite/gdb.arch/i386-gnu-cfi.exp +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ ./gdb/testsuite/gdb.arch/i386-gnu-cfi.exp 30 Dec 2006 18:25:02 -0000 +@@ -0,0 +1,94 @@ ++# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++# Please email any bugs, comments, and/or additions to this file to: ++# bug-gdb@gnu.org ++ ++# This file is part of the gdb testsuite. ++ ++# Unwinding of DW_CFA_GNU_negative_offset_extended test program. ++ ++if $tracelevel { ++ strace $tracelevel ++} ++ ++# Test i386 unwinder. ++ ++set prms_id 0 ++set bug_id 0 ++ ++if ![istarget "i?86-*-*"] then { ++ verbose "Skipping i386 unwinder tests." ++ return ++} ++ ++set testfile "i386-gnu-cfi" ++set srcfilec ${testfile}.c ++set srcfileasm ${testfile}-asm.S ++set binfile ${objdir}/${subdir}/${testfile} ++ ++# some targets have leading underscores on assembly symbols. ++# TODO: detect this automatically ++set additional_flags "" ++if [istarget "i?86-*-cygwin*"] then { ++ set additional_flags "additional_flags=-DSYMBOL_PREFIX=\"_\"" ++} ++ ++if { [gdb_compile "${srcdir}/${subdir}/${srcfilec} ${srcdir}/${subdir}/${srcfileasm}" "${binfile}" executable [list debug $additional_flags]] != "" } { ++ untested i386-gnu-cfi.exp ++ return -1 ++} ++ ++# Get things started. ++ ++gdb_exit ++gdb_start ++gdb_reinitialize_dir $srcdir/$subdir ++gdb_load ${binfile} ++ ++# We should stop in abort(3). ++ ++gdb_test "run" \ ++ "Program received signal SIGABRT,.*" \ ++ "run" ++ ++# Backtrace would crash before. ++ ++gdb_test "bt" \ ++ "main \\(\\) at .*${testfile}.c.*" \ ++ "backtrace" ++ ++# Check we see the inserted `DW_CFA_GNU_negative_offset_extended' CFI. ++# We see there the original CFI-stored filename `gate.c'. ++ ++gdb_test "up 3" \ ++ "gate \\(\[^()\]*\\) at .*gate.c.*" \ ++ "shift up to the modified frame" ++ ++send_gdb "info frame\n"; ++gdb_expect { ++ -re "Stack level 3, frame at (0x\[0-9a-f\]+):.*Saved registers:.* ecx at (0x\[0-9a-f\]+),.*" { ++ pass "Value of the CFI inserted register" ++ if { [string compare $expect_out(1,string) $expect_out(2,string)] } then { ++ fail "Value of the CFI inserted register" ++ } else { ++ pass "Value of the CFI inserted register" ++ } ++ } ++ default { ++ fail "Existence of the CFI inserted register" ++ } ++} diff --git a/gdb-6.5-bz215816-readline-from-callback-test.patch b/gdb-6.5-bz215816-readline-from-callback-test.patch new file mode 100644 index 0000000..8e2ab53 --- /dev/null +++ b/gdb-6.5-bz215816-readline-from-callback-test.patch @@ -0,0 +1,97 @@ +https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=215816 + + +Index: ./gdb/testsuite/gdb.base/readline-callback-history.c +=================================================================== +RCS file: ./gdb/testsuite/gdb.base/readline-callback-history.c +diff -N ./gdb/testsuite/gdb.base/readline-callback-history.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ ./gdb/testsuite/gdb.base/readline-callback-history.c 25 Dec 2006 22:54:37 -0000 +@@ -0,0 +1,25 @@ ++/* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++ Please email any bugs, comments, and/or additions to this file to: ++ bug-gdb@prep.ai.mit.edu */ ++ ++int main() ++{ ++ return 0; ++} +Index: ./gdb/testsuite/gdb.base/readline-callback-history.exp +=================================================================== +RCS file: ./gdb/testsuite/gdb.base/readline-callback-history.exp +diff -N ./gdb/testsuite/gdb.base/readline-callback-history.exp +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ ./gdb/testsuite/gdb.base/readline-callback-history.exp 25 Dec 2006 22:54:37 -0000 +@@ -0,0 +1,55 @@ ++# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++if $tracelevel then { ++ strace $tracelevel ++} ++ ++set prms_id 0 ++set bug_id 0 ++ ++set testfile start ++set srcfile ${testfile}.c ++set binfile ${objdir}/${subdir}/${testfile} ++if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { ++ untested "Couldn't compile test program" ++ return -1 ++} ++ ++# For: \033[A (up arrow) ++set env(TERM) vt100 ++ ++# Get things started. ++ ++gdb_exit ++gdb_start ++gdb_reinitialize_dir $srcdir/$subdir ++gdb_load ${binfile} ++ ++# For C programs, "start" should stop in main(). ++ ++gdb_test "b main" \ ++ "Breakpoint 1 at.*" \ ++ "Breakpoint put" ++ ++gdb_test "run" \ ++ "Breakpoint 1, main (.*) at .*" \ ++ "Stopped at the breakpoint" ++ ++# \033[A (up arrow) ++gdb_test "command 1\n\033\[A\nend" \ ++ "Type commands for when breakpoint 1 is hit.*\n>command 1.*" \ ++ "History is available even from callback" diff --git a/gdb.spec b/gdb.spec index 39ef7f7..bea5ecb 100644 --- a/gdb.spec +++ b/gdb.spec @@ -11,7 +11,7 @@ Name: gdb Version: 6.5 # The release always contains a leading reserved number, start it at 0. -Release: 21%{?dist} +Release: 22%{?dist} License: GPL Group: Development/Debuggers @@ -305,6 +305,7 @@ Patch213: gdb-6.5-readline-long-line-crash-test.patch # Fix readline history for input mode commands like `command' (BZ 215816). Patch212: gdb-6.5-bz215816-readline-from-callback.patch +Patch219: gdb-6.5-bz215816-readline-from-callback-test.patch # Fix bogus 0x0 unwind of the thread's topmost function clone(3) (BZ 216711). Patch214: gdb-6.5-bz216711-clone-is-outermost.patch @@ -316,6 +317,10 @@ Patch216: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch # Fix lockup on trampoline vs. its function lookup; unreproducible (BZ 218379). Patch217: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch +# Fix unwinding crash on older gcj(1) code (extended CFI support) (BZ 165025). +Patch221: gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-fix.patch +Patch222: gdb-6.5-bz165025-DW_CFA_GNU_negative_offset_extended-test.patch + BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext BuildRequires: flex bison sharutils @@ -440,6 +445,9 @@ and printing their data. %patch215 -p1 %patch216 -p1 %patch217 -p1 +%patch219 -p1 +%patch221 -p1 +%patch222 -p1 # Change the version that gets printed at GDB startup, so it is RedHat # specific. @@ -603,6 +611,10 @@ fi # don't include the files in include, they are part of binutils %changelog +* Sat Dec 30 2006 Jan Kratochvil - 6.5-22 +- Fix unwinding crash on older gcj(1) code (extended CFI support) (BZ 165025). +- Include testcase for the readline history of input mode commands (BZ 215816). + * Sat Dec 23 2006 Jan Kratochvil - 6.5-21 - Try to reduce sideeffects of skipping ppc .so libs trampolines (BZ 218379). - Fix lockup on trampoline vs. its function lookup; unreproducible (BZ 218379).