Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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