[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