From: Nick Clifton <nickc@redhat.com>
To: Mike Frysinger <vapier@gentoo.org>, gdb-patches@sourceware.org
Subject: Re: [PATCH] sim: unify symbol table handling
Date: Mon, 15 Aug 2016 09:22:00 -0000 [thread overview]
Message-ID: <9c6fd370-885a-4290-160c-e9898a87e051@redhat.com> (raw)
In-Reply-To: <20160813195500.25598-1-vapier@gentoo.org>
Hi Mike,
> Nick: can you double check the aarch64 & msp430 changes ?
> And see if in general this makes sense to you ?
Sure.
> diff --git a/sim/aarch64/interp.c b/sim/aarch64/interp.c
> [...]
> /* Filter out (in place) symbols that are useless for disassembly.
> COUNT is the number of elements in SYMBOLS.
> Return the number of useful symbols. */
>
> -static unsigned long
> -remove_useless_symbols (asymbol **symbols, unsigned long count)
> +static long
> +remove_useless_symbols (asymbol **symbols, long count)
I understand the change to a signed long, but personally I consider
it a mistake. The number of symbols is always going to be a positive
value, and the need for an error value could easily be handled using
-1U instead of -1L. But the problem is endemic to the BFD library's
symbol handling code, so I guess that it will have to stay. *sigh*
> diff --git a/sim/aarch64/memory.h b/sim/aarch64/memory.h
> -extern void mem_add_blk (sim_cpu *, uint64_t, char *, uint64_t, bfd_boolean);
(I have no problem with this part of the patch, but just to note
that it is nothing to do with unifying symbol table handling...)
> +int
> +trace_load_symbols (SIM_DESC sd)
> +{
Wouldn't it make sense for trace_load_symbols to also remove useless
symbols and then sort the table ? Isn't this something that all
sims will want ? [The code for remove_useless_symbols in aarch64/interp.c
is basically generic, not aarch64 specific].
> +bfd_vma
> +trace_sym_value (SIM_DESC sd, const char *name)
> +{
> [...]
> + for (i = 0; i < STATE_PROG_SYMS_COUNT (sd); ++i)
> + if (strcmp (asymbols[i]->name, name) == 0)
> + return bfd_asymbol_value (asymbols[i]);
If there was a flag to say that the symbol table was sorted, then
this lookup could be done using bsearch().
So basically as far as I can see there is nothing wrong with the patch.
Certainly not from an AArch64 of MSP430 point of view.
Cheers
Nick
next prev parent reply other threads:[~2016-08-15 9:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-13 19:55 Mike Frysinger
2016-08-15 9:22 ` Nick Clifton [this message]
2016-08-15 13:31 ` Mike Frysinger
2016-08-15 14:21 ` Trevor Saunders
2016-08-15 16:57 ` Mike Frysinger
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=9c6fd370-885a-4290-160c-e9898a87e051@redhat.com \
--to=nickc@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=vapier@gentoo.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: 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