From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3390 invoked by alias); 17 Mar 2010 21:23:44 -0000 Received: (qmail 3364 invoked by uid 48); 17 Mar 2010 21:23:44 -0000 Date: Wed, 17 Mar 2010 21:23:00 -0000 Message-ID: <20100317212344.3363.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libgcj/40860] [4.4/4.5 regression] regressions in libjava testsuite on arm-linux In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: java-prs@gcc.gnu.org From: "mikpe at it dot uu dot se" Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org X-SW-Source: 2010-q1/txt/msg00158.txt.bz2 ------- 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