------- Comment #17 from mikpe at it dot uu dot se 2010-03-16 17:29 ------- I decided to attack things from the binutils side. The problematic binutils change rolls two distinct changes into one (add cantunwind table entries, merge adjacent equivalent table entries). Disabling the "merge" part eliminated the libjava regressions in my ARM mode build:
--- binutils-2.20.51/bfd/elf32-arm.c.~1~ +++ binutils-2.20.51/bfd/elf32-arm.c @@ -9301,10 +9306,12 @@ elf32_arm_fix_exidx_coverage (asection * if (elide) { +#if 0 add_unwind_table_edit (&unwind_edit_head, &unwind_edit_tail, DELETE_EXIDX_ENTRY, NULL, j / 8); deleted_exidx_bytes += 8; +#endif } last_unwind_type = unwind_type; I'll keep experimenting. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40860