Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: lgustavo@codesourcery.com
Cc: Tom Tromey <tromey@redhat.com>,
	       "'gdb-patches@sourceware.org'"
	<gdb-patches@sourceware.org>
Subject: Re: [PATCH] Refactor common/target-common into meaningful bits
Date: Fri, 02 Aug 2013 09:29:00 -0000	[thread overview]
Message-ID: <51FB7BFB.90100@redhat.com> (raw)
In-Reply-To: <51FAA061.4050005@codesourcery.com>

On 08/01/2013 06:52 PM, Luis Machado wrote:
> On 08/01/2013 02:49 PM, Tom Tromey wrote:
>>>>>>> "Luis" == Luis Machado <lgustavo@codesourcery.com> writes:
>>
>> Luis> First, it seems like a good idea to stablish a  more meaningful
>> Luis> directory structure as well, so we are moving target-common.[c|h] from
>> Luis> the "common" dir to the new "target" dir. This new directory will hold
>> Luis> anything more backend-related. For now it contains only generic target
>> Luis> definitions and functions.
>>
>> I like it.
>>
>> Luis> I've broken target-common.[c|h] into the following:
>> Luis> - target-resume.h: Definition for resume_kind.
>> Luis> - target-waitstatus.[c|h]: Definitions and code for anything related
>> Luis> to waitstatus.
>> Luis> - target-wait.h: A tiny bit that does not seem to fit properly in the
>> Luis> waitstatus files, so it is left here.
>>
>> If I may be permitted to bikeshed just a bit longer...
>>
>> Right now the file is named "target/target-waitstatus.h" and the code
>> says:
>>
>> +#include "target-waitstatus.h"
>>
>>
>> I wonder whether you considered naming the file "target/waitstatus.h"
>> and having the code say:
> 
> I did and it does sound more intuitive, but i didn't want to turn too 
> many knobs at a time. If others are OK with this, i can make that change.

We had a discussion on IRC yesterday on this.  To sum it up:

"target" is an overloaded word in GDB-speak.  My idea for this new
directory, would be for it to hold the native target backend bits.
But "target" could also suggest that corelow.c, file.c, remote.c, etc.
should be put in this directory, while I don't think they should.

Sounds like a better name for this native target backend directory
should be invented.  GDB uses *-nat.c naming for most of
these files, while GDBserver uses *-low.c.

( "low" itself in GDBserver is also ambiguous -- e.g., linux-low.h
introduces the "struct linux_target_ops", and we call _that_ the
"low target" at places (seems its my own fault for introducing
that ambiguity...) ... )

So to me that suggests "nat", "native" or "low", in my order
of preference.

These new target-resume.h, target-wait.h, target-waitstatus.h,
target-waitstatus.c files might be looked at as actually something
else.  This is code defining the interface between GDB core and
target_ops, and as such is used by all sort of targets on the
GDB side (remote.c, etc.).  I'm not sure they should go in the same
directory as the *-nat.c, etc. files.  GDBserver's "struct target_ops"
is both smaller, and different at places from GDB's own "struct target_ops".
In a world where we fuse gdb's and gdbserver's target backends, it's
not clear to me at this point whether we'll end up with only one
"struct target_ops", or whether we'll still end up with two
different structures, with parts of GDBserver core implementing
GDB's own target_ops, and marshalling things to the lower GDBserver's
struct target_ops, while handling others behind GDB core's back.

I guess I'm saying, someone should sit, and think this
through, and come up with a design/guide of what things look like
in the end, before we start moving things around too much.  In
the mean time, I propose avoiding diverging from Luis' original
goal, and continuing what we had been doing, by
putting target-resume.h, target-wait.h, target-waitstatus.h,
target-waitstatus.c under common/.  Further moves can always
be done later.

WDYT?

-- 
Pedro Alves


  reply	other threads:[~2013-08-02  9:29 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-01 17:09 Luis Machado
2013-08-01 17:50 ` Tom Tromey
2013-08-01 17:52   ` Luis Machado
2013-08-02  9:29     ` Pedro Alves [this message]
2013-08-02 20:48       ` Tom Tromey
2013-08-05 10:44         ` Pedro Alves
2013-08-05 15:33           ` Luis Machado
2013-08-05 19:12           ` Tom Tromey
2013-08-05 19:21             ` Mark Kettenis
2013-08-06  8:48               ` Pedro Alves
2013-08-04 12:35       ` Yao Qi
2013-08-01 17:54   ` Pedro Alves
2013-08-16 14:49 ` Luis Machado
2013-08-17  4:01   ` Luis Machado
2013-08-19 13:45   ` Pedro Alves
2013-08-19 16:57     ` Luis Machado

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=51FB7BFB.90100@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=lgustavo@codesourcery.com \
    --cc=tromey@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