From: "Ulrich Weigand" <uweigand@de.ibm.com>
To: dan@codesourcery.com (Daniel Jacobowitz)
Cc: gdb-patches@sourceware.org, rearnsha@arm.com,
matthew.gretton-dann@arm.com
Subject: Re: [rfc/rfa] Use ARM exception tables as GDB unwinder
Date: Thu, 21 Oct 2010 22:26:00 -0000 [thread overview]
Message-ID: <201010212226.o9LMQ5dj013628@d12av02.megacenter.de.ibm.com> (raw)
In-Reply-To: <20101021160155.GP8337@caradoc.them.org> from "Daniel Jacobowitz" at Oct 21, 2010 12:01:56 PM
Dan Jacobowitz wrote:
> No, this is not the case. The linker is supposed to fix it up:
>
> /* Scan .ARM.exidx tables, and create a list describing edits which should be
> made to those tables, such that:
>
> 1. Regions without unwind data are marked with EXIDX_CANTUNWIND entries.
> 2. Duplicate entries are merged together (EXIDX_CANTUNWIND, or unwind
> codes which have been inlined into the index).
>
> If MERGE_EXIDX_ENTRIES is false, duplicate entries are not merged.
>
> The edits are applied when the tables are written
> (in elf32_arm_write_section).
> */
>
> If it's not doing that, we should figure out why - it can lead to
> crashes in libgcc, if the unwinder is invoked, rather than the correct
> failure to unwind.
>
> I think 2.19 didn't do this but 2.20 did.
Well, the function elf32_arm_fix_exidx_coverage you refer to above is
never called for a relocatable link ...
Unfortunately, the glibc link process works like this (abbreviated):
- build all the objects (some with exidx, some without)
- collect objects into an archive libc_pic.a
- do a relocatable link: -o libc_pic.os -r --whole-archive libc_pic.a
- build shared object: -o libc.so -shared ... libc_pic.os ...
The relocatable link step concatenates the text sections of objects
with exidx and those without, but does not call any special fixup
routine, so no EXIDX_CANTUNWIND entries are inserted.
The shared object final link step *does* run the fixup routine, but
since it now only sees a single big text section, it doesn't fix up
anything ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
next prev parent reply other threads:[~2010-10-21 22:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-20 0:01 Ulrich Weigand
2010-10-20 11:14 ` Matthew Gretton-Dann
2010-10-21 15:39 ` Ulrich Weigand
2010-10-20 13:27 ` Daniel Jacobowitz
2010-10-21 15:51 ` Ulrich Weigand
2010-10-21 16:02 ` Daniel Jacobowitz
2010-10-21 18:26 ` Ulrich Weigand
2010-10-21 18:42 ` Daniel Jacobowitz
2010-10-21 20:29 ` Ulrich Weigand
2010-10-21 20:43 ` Daniel Jacobowitz
2010-12-01 16:45 ` Ulrich Weigand
2010-12-12 4:21 ` Daniel Jacobowitz
2010-12-12 12:24 ` Andreas Schwab
2011-03-09 19:11 ` Ulrich Weigand
2011-03-11 22:35 ` Daniel Jacobowitz
2011-03-19 4:25 ` Ulrich Weigand
2011-03-21 14:51 ` Daniel Jacobowitz
2011-03-21 20:06 ` Ulrich Weigand
2010-10-21 22:26 ` Ulrich Weigand [this message]
2010-10-26 13:43 ` Daniel Jacobowitz
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=201010212226.o9LMQ5dj013628@d12av02.megacenter.de.ibm.com \
--to=uweigand@de.ibm.com \
--cc=dan@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=matthew.gretton-dann@arm.com \
--cc=rearnsha@arm.com \
/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: link
Be 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).