From: Daniel Jacobowitz <drow@mvista.com>
To: Richard.Earnshaw@arm.com
Cc: Nick Clifton <nickc@redhat.com>,
gdb-patches@sources.redhat.com, binutils@sources.redhat.com
Subject: Re: RFA: Skip ARM ELF Mapping symbols when showing disassembly
Date: Wed, 14 Jan 2004 23:42:00 -0000 [thread overview]
Message-ID: <20040114234206.GA7504@nevyn.them.org> (raw)
In-Reply-To: <200311131445.hADEj7C19503@pc960.cambridge.arm.com>
On Thu, Nov 13, 2003 at 02:45:07PM +0000, Richard Earnshaw wrote:
> > Hi Guys,
> >
> > I have recently committed a patch to the arm-elf port of GAS which
> > causes it to generate special mapping symbols as required by the ARM
> > ELF spec. Unfortunately this now means that when GDB shows a
> > disassembly it can select one of the mapping symbols instead of the
> > proper function name symbol.
> >
> > The patch below is a fix for this problem. It is not elegant, but
> > it does have the advantage of being entirely arm specific. A
> > cleaner patch would require changes to generic code, which I did not
> > feel comfortable doing.
> >
> > May I apply this patch ?
> >
> > Cheers
> > Nick
> >
>
> I wonder whether a better way to handle all this is to override
> slurp_symbol_table for arm-elf to a routine that just skips the mapping
> symbols entirely (or at least, doesn't put them into the list that it
> passes back to its caller), then to add a separate function to slurp the
> mapping symbols independently. Then gdb and the disassembler (and the
> linker error reports) would all just work normally.
>
> It would be necessary to add support for copying and fixing up the mapping
> symbols when linking, but that's probably not too hard.
Actually, I think it's not necessary, since elf_link_input_bfd doesn't
use the slurp routines anyway - it parses the ELF symbol table
directly. In testing it appears to work.
There is another problem, though. The symbols are in the symbol table
and thus have assigned numbers. The returned list of symbols is passed
back to functions like bfd_canonicalize_reloc, which use the list of
symbols to resolve relocations. Probably other consumers assume the
whole list of ELF symbols is returned, also, and index it by other
copies of the symbol index. So the linker doesn't appear to care, but
objdump and possibly GDB do.
Any ideas on how to resolve this? We can't NULL out the mapping
symbols in symptrs either, because the list is defined to be
NULL-terminated (even though we return its length...).
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2004-01-14 23:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-13 14:29 Nick Clifton
2003-11-13 14:45 ` Richard Earnshaw
2003-11-13 15:20 ` Daniel Jacobowitz
2004-01-14 23:42 ` Daniel Jacobowitz [this message]
2004-01-20 13:23 ` Nick Clifton
2003-11-18 16:15 ` Andrew Cagney
2003-11-18 16:45 ` Richard Earnshaw
2003-11-18 17:20 ` Andrew Cagney
2003-11-18 17:29 ` Richard Earnshaw
2003-11-18 17:41 ` Andrew Cagney
2003-11-18 19:55 ` Nick Clifton
2003-11-25 12:25 ` Nick Clifton
2003-11-25 12:34 ` Richard Earnshaw
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=20040114234206.GA7504@nevyn.them.org \
--to=drow@mvista.com \
--cc=Richard.Earnshaw@arm.com \
--cc=binutils@sources.redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=nickc@redhat.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