diff --git a/gdb-6.5-last-address-space-byte-test.patch b/gdb-6.5-last-address-space-byte-test.patch new file mode 100644 index 0000000..bc60ada --- /dev/null +++ b/gdb-6.5-last-address-space-byte-test.patch @@ -0,0 +1,56 @@ +Index: gdb/testsuite/gdb.base/largecore-last-address-lock.exp +=================================================================== +RCS file: gdb/testsuite/gdb.base/largecore-last-address-lock.exp +diff -N gdb/testsuite/gdb.base/largecore-last-address-lock.exp +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gdb/testsuite/gdb.base/largecore-last-address-lock.exp 15 Nov 2006 21:43:24 -0000 +@@ -0,0 +1,49 @@ ++# 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 ++} ++ ++# Get things started. ++ ++gdb_exit ++gdb_start ++ ++# i386 (32-bit) only: gdb with Red Hat largecore patch did lock up: ++# https://enterprise.redhat.com/issue-tracker/?module=issues&action=view&tid=103263 ++# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=210614 ++ ++# i386: Bug exists when the `target_xfer_memory' condition ++# `(memaddr + len < region->hi)' operates on 64-bit operands on ++# largecore-patched with 32-bit addresses and so it can get `false' with ++# arbitrary `len'. ++ ++# x86_64: The bug is not present as the operands and calculations have the same ++# bit size. Would would still need to pass there the highest address ++# (`memaddr == 0xffffffffffffffff') but we would need to pass `len == 0' ++# to make the condition `(memaddr + len < region->hi)' false. ++# `len == 0' would get caught eariler. ++ ++# Error in the success case is immediate. ++set timeoutold ${timeout} ++set timeout 10 ++ ++gdb_test "x/xb 0xffffffff" \ ++ "Cannot access memory at address 0xffffffff" \ ++ "Read the last address space byte" ++ ++set timeout ${timeoutold} diff --git a/gdb.spec b/gdb.spec index 5b782df..ba883af 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: 15%{?dist} +Release: 16%{?dist} License: GPL Group: Development/Debuggers @@ -285,6 +285,7 @@ Patch201: gdb-6.5-gcore-i386-on-amd64.patch # Fix deadlock accessing last address space byte; for corrupted backtraces. Patch203: gdb-6.5-last-address-space-byte.patch +Patch211: gdb-6.5-last-address-space-byte-test.patch # Fix "??" resolving of symbols from (non-prelinked) debuginfo packages. # "gdb-6.5-matching_bfd_sections.patch" is a prerequisited CVS backport. @@ -418,6 +419,7 @@ and printing their data. %patch207 -p1 %patch208 -p1 %patch209 -p1 +%patch211 -p1 # Change the version that gets printed at GDB startup, so it is RedHat # specific. @@ -580,6 +582,9 @@ fi # don't include the files in include, they are part of binutils %changelog +* Wed Nov 16 2006 Jan Kratochvil - 6.5-16 +- Provide testcase for accessing the last address space byte. + * Wed Nov 9 2006 Jan Kratochvil - 6.5-15 - Fix readline segfault on excessively long hand-typed lines.