diff --git a/gdb-gcc46-stdarg-prologue.patch b/gdb-gcc46-stdarg-prologue.patch new file mode 100644 index 0000000..079c4a0 --- /dev/null +++ b/gdb-gcc46-stdarg-prologue.patch @@ -0,0 +1,24 @@ +diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c +index 6a98d57..9fa9c3c 100644 +--- a/gdb/dwarf2read.c ++++ b/gdb/dwarf2read.c +@@ -10371,6 +10371,9 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd, + + if (op_code >= lh->opcode_base) + { ++ CORE_ADDR saved_address = address; ++ unsigned int saved_line = line; ++ + /* Special operand. */ + adj_opcode = op_code - lh->opcode_base; + address += (((op_index + (adj_opcode / lh->line_range)) +@@ -10383,7 +10386,8 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, bfd *abfd, + dwarf2_debug_line_missing_file_complaint (); + /* For now we ignore lines not starting on an + instruction boundary. */ +- else if (op_index == 0) ++ else if (op_index == 0 ++ && (address != saved_address || line != saved_line)) + { + lh->file_names[file - 1].included_p = 1; + if (!decode_for_pst_p && is_stmt) diff --git a/gdb-gcc46-typedef.patch b/gdb-gcc46-typedef.patch new file mode 100644 index 0000000..8c43d23 --- /dev/null +++ b/gdb-gcc46-typedef.patch @@ -0,0 +1,17 @@ +internal-error: could not find partial DIE +https://bugzilla.redhat.com/show_bug.cgi?id=672230 + +diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c +index 6a98d57..f33a327 100644 +--- a/gdb/dwarf2read.c ++++ b/gdb/dwarf2read.c +@@ -8796,8 +8796,7 @@ load_partial_dies (bfd *abfd, gdb_byte *buffer, gdb_byte *info_ptr, + if (parent_die == NULL + && part_die->has_specification == 0 + && part_die->is_declaration == 0 +- && (part_die->tag == DW_TAG_typedef +- || part_die->tag == DW_TAG_base_type ++ && (part_die->tag == DW_TAG_base_type + || part_die->tag == DW_TAG_subrange_type)) + { + if (building_psymtab && part_die->name != NULL) diff --git a/gdb.spec b/gdb.spec index e95baa4..f92a7f6 100644 --- a/gdb.spec +++ b/gdb.spec @@ -27,7 +27,7 @@ Version: 7.2.50.20110125 # 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: 14%{?_with_upstream:.upstream}%{?dist} +Release: 15%{?_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 @@ -543,6 +543,12 @@ Patch552: gdb-gdbindex-v4-2of3.patch # Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6. Patch554: gdb-dwarf3-accessibility.patch +# Temporary fix of F15 gcc-4.6 child DIEs of DW_TAG_typedef (BZ 672230). +Patch555: gdb-gcc46-typedef.patch + +# Workaround gcc-4.6 stdarg false prologue end (GDB PR 12435 + GCC PR 47471). +Patch556: gdb-gcc46-stdarg-prologue.patch + BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa} Requires: readline%{?_isa} BuildRequires: readline-devel%{?_isa} @@ -794,6 +800,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch548 -p1 %patch552 -p1 %patch554 -p1 +%patch555 -p1 +%patch556 -p1 %patch390 -p1 %patch393 -p1 @@ -1200,7 +1208,11 @@ fi %endif %changelog -* Thu Jan 20 2011 Jan Kratochvil - 7.2.50.20110125-14.fc15 +* Wed Jan 26 2011 Jan Kratochvil - 7.2.50.20110125-15.fc15 +- Temporary fix of F15 gcc-4.6 child DIEs of DW_TAG_typedef (BZ 672230). +- Workaround gcc-4.6 stdarg false prologue end (GDB PR 12435 + GCC PR 47471). + +* Tue Jan 25 2011 Jan Kratochvil - 7.2.50.20110125-14.fc15 - Rebase to FSF GDB 7.2.50.20110125 (which is a 7.3 pre-release). - Fix discontiguous address ranges in .gdb_index - v3->v4 (BZ 672281). - Fix DWARF-3+ DW_AT_accessibility default assumption for F15 gcc-4.6.