1.1 --- a/patches/gdb/6.3/790-debian_dwarf2-cfi-warning.patch Tue Aug 14 19:32:22 2007 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,39 +0,0 @@
1.4 -Status: Unsuitable for upstream (at least, without a lot of arguing).
1.5 -
1.6 -GCC does not specify the state of every last register in the CIE. Since
1.7 -GCC's focus is on correctness of runtime unwinding, any registers which
1.8 -have to be unwound will be specified; but unmodified registers will not
1.9 -be explicitly marked. (How about modified, call-clobbered registers?
1.10 -I'm not sure if they are marked as unavailable.)
1.11 -
1.12 -GDB issues a noisy warning about this. The warning is generally not useful,
1.13 -and we can get it extremely frequently (any time we load a new CIE).
1.14 -
1.15 -This patch disables the warning. Alternately we could set the complaints
1.16 -threshold to zero, or implement a default frame init-register method for
1.17 -every architecture. But someday the compiler will support using different
1.18 -calling conventions for internal functions, so that's not much of a stopgap.
1.19 -ARM has a complex algorithm for handling this, involving scanning all CIEs -
1.20 -benefit not completely clear outside of the ARM context of flexible register
1.21 -sets.
1.22 -
1.23 -Index: gdb-6.3/gdb/dwarf2-frame.c
1.24 -===================================================================
1.25 ---- gdb-6.3.orig/gdb/dwarf2-frame.c 2004-11-15 11:54:57.000000000 -0500
1.26 -+++ gdb-6.3/gdb/dwarf2-frame.c 2004-12-08 18:02:23.896409471 -0500
1.27 -@@ -705,9 +705,12 @@ dwarf2_frame_cache (struct frame_info *n
1.28 - table. We need a way of iterating through all the valid
1.29 - DWARF2 register numbers. */
1.30 - if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
1.31 -- complaint (&symfile_complaints,
1.32 -- "Incomplete CFI data; unspecified registers at 0x%s",
1.33 -- paddr (fs->pc));
1.34 -+ {
1.35 -+ if (0)
1.36 -+ complaint (&symfile_complaints,
1.37 -+ "Incomplete CFI data; unspecified registers at 0x%s",
1.38 -+ paddr (fs->pc));
1.39 -+ }
1.40 - else
1.41 - cache->reg[regnum] = fs->regs.reg[column];
1.42 - }