[gdb] - Temporary fix of F15 gcc-4.6 child DIEs of DW_TAG_typedef (BZ 672230). - Workaround gcc-4.6 stdarg
Jan Kratochvil
jankratochvil at fedoraproject.org
Wed Jan 26 14:41:42 UTC 2011
commit 16c47e7f0c6661a0e603db078faaacf3977f2005
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date: Wed Jan 26 15:41:26 2011 +0100
- 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).
gdb-gcc46-stdarg-prologue.patch | 24 ++++++++++++++++++++++++
gdb-gcc46-typedef.patch | 17 +++++++++++++++++
gdb.spec | 16 ++++++++++++++--
3 files changed, 55 insertions(+), 2 deletions(-)
---
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 <jan.kratochvil at redhat.com> - 7.2.50.20110125-14.fc15
+* Wed Jan 26 2011 Jan Kratochvil <jan.kratochvil at redhat.com> - 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 <jan.kratochvil at redhat.com> - 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.
More information about the scm-commits
mailing list