public inbox for java-prs@sourceware.org help / color / mirror / Atom feed
From: "mikpe at it dot uu dot se" <gcc-bugzilla@gcc.gnu.org> To: java-prs@gcc.gnu.org Subject: [Bug libgcj/40860] [4.4/4.5 regression] regressions in libjava testsuite on arm-linux Date: Fri, 19 Mar 2010 23:20:00 -0000 [thread overview] Message-ID: <20100319232036.26532.qmail@sourceware.org> (raw) In-Reply-To: <bug-40860-5724@http.gcc.gnu.org/bugzilla/> ------- Comment #23 from mikpe at it dot uu dot se 2010-03-19 23:20 ------- While working on another debugging patch I noticed something that I think might explain the libjava regressions, especially the stack trace ones. The binutils change breaks _Unwind_GetRegionStart(). Example: We have three functions, f1() starts at address 100 and is 20 bytes, f2() starts at address 120 and is 10 bytes, and f3() starts at address 130. f1() and f2() got the same inlined unwind table data U1, while f3() got some different unwind table data U3. A pre-binutils-2.20 .ARM.exidx table for this program would be [0] = { 100, U1 }, [1] = { 120, U1 }, [2] = { 130, U3 }, ... binutils-2.20 and later merge entry [1] with entry [0] since they are adjacent and have the same unwind table data, producing a final .ARM.exidx table: [0] = { 100, U1 }, [1] = { 130, U3 }, ... So an exception in or unwind through f2() will now return { 100, U1 } rather than { 120, U1 }. The first thing that happens with the found table entry is that the function start address is stashed away (unwind-arm.c:get_eit_entry(), the assignment to ucbp->pr_cache.fnstart). Then __gnu_unwind_pr_common() uses fnstart while interpreting the unwind table data; I haven't studied that code but since libstdc++ test cases don't regress I assume the incorrect fnstart doesn't matter for inlined unwind table data. However, pr-support.c:_Unwind_GetRegionStart() also uses fnstart, so users of _Unwind_GetRegionStart() will see f1() not f2() for exceptions in or unwinds through f2(). In particular, libjava/stacktrace.cc looks like it will construct bogus stack traces (see its uses of 'start_ip'). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40860
next prev parent reply other threads:[~2010-03-19 23:20 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-07-26 10:51 [Bug libgcj/40860] New: " debian-gcc at lists dot debian dot org 2009-07-29 23:07 ` [Bug libgcj/40860] " jsm28 at gcc dot gnu dot org 2009-10-15 12:54 ` jakub at gcc dot gnu dot org 2010-01-21 13:16 ` jakub at gcc dot gnu dot org 2010-01-24 16:04 ` mikpe at it dot uu dot se 2010-01-25 9:33 ` mikpe at it dot uu dot se 2010-02-03 14:51 ` mikpe at it dot uu dot se 2010-02-05 15:40 ` mikpe at it dot uu dot se 2010-02-06 15:36 ` mikpe at it dot uu dot se 2010-02-13 20:49 ` mikpe at it dot uu dot se 2010-02-15 15:32 ` doko at ubuntu dot com 2010-02-15 22:26 ` mikpe at it dot uu dot se 2010-02-16 16:34 ` doko at ubuntu dot com 2010-02-19 23:32 ` mikpe at it dot uu dot se 2010-02-22 21:49 ` mikpe at it dot uu dot se 2010-02-28 10:07 ` aph at gcc dot gnu dot org 2010-03-04 10:17 ` mikpe at it dot uu dot se 2010-03-15 9:09 ` mikpe at it dot uu dot se 2010-03-15 9:16 ` rearnsha at gcc dot gnu dot org 2010-03-16 13:42 ` doko at ubuntu dot com 2010-03-16 17:29 ` mikpe at it dot uu dot se 2010-03-16 23:30 ` doko at ubuntu dot com 2010-03-16 23:39 ` mikpe at it dot uu dot se 2010-03-17 10:51 ` doko at ubuntu dot com 2010-03-17 21:13 ` mikpe at it dot uu dot se 2010-03-17 21:23 ` mikpe at it dot uu dot se 2010-03-19 23:20 ` mikpe at it dot uu dot se [this message] 2010-03-20 18:54 ` ramana at gcc dot gnu dot org 2010-03-20 22:10 ` mikpe at it dot uu dot se 2010-03-20 22:36 ` mikpe at it dot uu dot se 2010-03-22 23:48 ` rearnsha at gcc dot gnu dot org 2010-03-30 13:21 ` mikpe at it dot uu dot se 2010-03-30 14:04 ` pbrook at gcc dot gnu dot org 2010-03-30 15:09 ` mikpe at it dot uu dot se 2010-03-31 8:47 ` rearnsha at gcc dot gnu dot org 2010-03-31 21:44 ` mikpe at it dot uu dot se 2010-04-08 12:14 ` [Bug libgcj/40860] [4.4/4.5/4.6 " mikpe at it dot uu dot se 2010-04-12 19:03 ` mikpe at it dot uu dot se 2010-04-13 16:36 ` aph at gcc dot gnu dot org 2010-04-13 16:52 ` mikpe at it dot uu dot se 2010-04-13 17:02 ` aph at redhat dot com 2010-04-13 17:25 ` aph at gcc dot gnu dot org 2010-04-21 16:34 ` aph at gcc dot gnu dot org 2010-04-21 17:05 ` aph at gcc dot gnu dot org 2010-04-22 16:07 ` aph at gcc dot gnu dot org 2010-04-22 16:08 ` aph at gcc dot gnu dot org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20100319232036.26532.qmail@sourceware.org \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=java-prs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).