diff --git a/gdb-bz574483-display-sepdebug.patch b/gdb-bz574483-display-sepdebug.patch new file mode 100644 index 0000000..64ddfa7 --- /dev/null +++ b/gdb-bz574483-display-sepdebug.patch @@ -0,0 +1,73 @@ +http://sourceware.org/ml/gdb-patches/2010-04/msg00055.html +Subject: [patch] Fix dangling displays in separate debug + +[ Backported. ] + +Hi, + +gdb.base/solib-display.exp using _separate_ debug info: +3: c_global = gdbtypes.c:1369: internal-error: check_typedef: Assertion `type' failed. +A problem internal to GDB has been detected, + +This problem was fixed before by: + [patch 1/8] Types GC [unloading observer] + http://sourceware.org/ml/gdb-patches/2009-05/msg00544.html + Re: [patch 3/8] Types GC [display_uses_solib_p to exp_iterate] + http://sourceware.org/ml/gdb-patches/2009-07/msg00054.html + +but as that patchset is still not in providing this temporary fixup instead. + +One may only address that gdb.base/solib-display.exp was testing symbol +in-objfile while now it tests only symbol in-sepdebug-objfile and no longer +the in-objfile case. I find the in-sepdebug-objfile as a superset of +in-objfile test but I can rework it if anyones addresses this test change. + +No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu. + + +Thanks, +Jan + + +gdb/ +2010-04-03 Jan Kratochvil + + * printcmd.c (display_uses_solib_p): Check also + SEPARATE_DEBUG_OBJFILE. + +gdb/testsuite/ +2010-04-03 Jan Kratochvil + + * gdb.base/solib-display.exp (split solib): New. + +--- a/gdb/printcmd.c ++++ b/gdb/printcmd.c +@@ -1845,7 +1845,10 @@ clear_dangling_display_expressions (stru + + for (d = display_chain; d != NULL; d = d->next) + if (block_objfile (d->block) == objfile +- || (d->exp && exp_uses_objfile (d->exp, objfile))) ++ || (d->exp && exp_uses_objfile (d->exp, objfile)) ++ || (objfile->separate_debug_objfile ++ && (block_objfile (d->block) == objfile->separate_debug_objfile ++ || (d->exp && exp_uses_objfile (d->exp, objfile->separate_debug_objfile))))) + { + xfree (d->exp); + d->exp = NULL; +--- a/gdb/testsuite/gdb.base/solib-display.exp ++++ b/gdb/testsuite/gdb.base/solib-display.exp +@@ -53,6 +53,13 @@ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != "" + return -1 + } + ++set test "split solib" ++if {[gdb_gnu_strip_debug $binfile_lib] != 0} { ++ fail $test ++} else { ++ pass $test ++} ++ + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + diff --git a/gdb.spec b/gdb.spec index f17c1e9..c04b578 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: 4%{?_with_upstream:.upstream}%{dist} +Release: 5%{?_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 @@ -441,6 +441,9 @@ Patch436: gdb-pie-3of6-relocate-once.patch # [expr-cumulative] using-directive: Fix memory leak (Sami Wagiaalla). Patch437: gdb-using-directive-leak.patch +# Fix dangling displays in separate debuginfo (BZ 574483). +Patch438: gdb-bz574483-display-sepdebug.patch + BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} Requires: readline%{?_isa} BuildRequires: readline-devel%{?_isa} @@ -695,6 +698,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch435 -p1 %patch436 -p1 %patch437 -p1 +%patch438 -p1 %patch415 -p1 %patch393 -p1 @@ -1027,6 +1031,9 @@ fi %endif %changelog +* Sat Apr 3 2010 Jan Kratochvil - 7.1-5.fc13 +- Fix dangling displays in separate debuginfo (BZ 574483). + * Wed Mar 31 2010 Jan Kratochvil - 7.1-4.fc13 - Remove gdb-readline-6.0-signal.patch with a bug causing crash while no longer required with F-13 readline-6.1 (BZ 575516)