This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgcj/40860] [4.4/4.5 regression] regressions in libjava testsuite on arm-linux
- From: "mikpe at it dot uu dot se" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Mar 2010 21:23:44 -0000
- Subject: [Bug libgcj/40860] [4.4/4.5 regression] regressions in libjava testsuite on arm-linux
- References: <bug-40860-5724@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #22 from mikpe at it dot uu dot se 2010-03-17 21:23 -------
I did another binutils experiment. I reverted my patch to disable general
merging of table entries, and instead disabled generating new and merging
cantunwind entries. With that binutils libjava regressed just like with vanilla
post-2.19.1 binutils. The general merging bit seems to be the problem.
--- binutils-2.20.51/bfd/elf32-arm.c.~1~
+++ binutils-2.20.51/bfd/elf32-arm.c
@@ -9148,6 +9148,7 @@ adjust_exidx_size(asection *exidx_sec, i
bfd_set_section_size (out_sec->owner, out_sec, out_sec->size +adjust);
}
+#if 0
/* Insert an EXIDX_CANTUNWIND marker at the end of a section. */
static void
insert_cantunwind_after(asection *text_sec, asection *exidx_sec)
@@ -9162,6 +9163,7 @@ insert_cantunwind_after(asection *text_s
adjust_exidx_size(exidx_sec, 8);
}
+#endif
/* Scan .ARM.exidx tables, and create a list describing edits which should be
made to those tables, such that:
@@ -9248,7 +9250,9 @@ elf32_arm_fix_exidx_coverage (asection *
if (sec->size == 0)
continue;
+#if 0
insert_cantunwind_after(last_text_sec, last_exidx_sec);
+#endif
last_unwind_type = 0;
continue;
}
@@ -9282,8 +9286,10 @@ elf32_arm_fix_exidx_coverage (asection *
/* An EXIDX_CANTUNWIND entry. */
if (second_word == 1)
{
+#if 0
if (last_unwind_type == 0)
elide = 1;
+#endif
unwind_type = 0;
}
/* Inlined unwinding data. Merge if equal to previous. */
@@ -9326,8 +9332,10 @@ elf32_arm_fix_exidx_coverage (asection *
}
/* Add terminating CANTUNWIND entry. */
+#if 0
if (last_exidx_sec && last_unwind_type != 0)
insert_cantunwind_after(last_text_sec, last_exidx_sec);
+#endif
return TRUE;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40860