Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Mark Kettenis <mark.kettenis@xs4all.nl>, palves@redhat.com
Cc: gbenson@redhat.com, gdb-patches@sourceware.org
Subject: Re: [PATCH 0/4 v2] Refactor shared code in i386-{nat,low}.[ch]
Date: Wed, 18 Jun 2014 18:01:00 -0000	[thread overview]
Message-ID: <53A1D408.5020001@redhat.com> (raw)
In-Reply-To: <201406181748.s5IHmM3H005254@glazunov.sibelius.xs4all.nl>

On 06/18/2014 06:48 PM, Mark Kettenis wrote:
>> Date: Wed, 18 Jun 2014 17:10:16 +0100
>> From: Pedro Alves <palves@redhat.com>
>>
>> On 06/18/2014 05:06 PM, Mark Kettenis wrote:
>>
>>> What is the whole point about this excercise?
>>
>> Reduce duplication and thus reduce maintenance burden.  The same code is
>> implemented twice, both in GDB and in GDBserver.
>> We've had to patch both sides of the fence several times in the
>> past years.  If we had already had this, it would have saved effort.
>> Can't rewrite history now, but we can avoid similar duplicate effort
>> in the future.  This specific bit is mentioned explicitly in:
>>
>>   https://sourceware.org/gdb/wiki/Common#Arch-specific_bits_of_the_target_backends
> 
> But common code lives in common/, and this diff moves things into
> nat/.  How does that unduplicate things?

Well, nat/ is a shared subdirectory, just like common/.  Both GDB and
GDBserver compile things from nat/, just like from common/.

Roughly:

 gdb/i386-nat.c + gdb/gdbserver/i386-low.c -> gdb/nat/i386-dregs.c

The little that remains in gdb/i386-nat.c and gdb/gdbserver/i386-low.c
is bits that glue GDB and GDBserver target_ops vectors to the
shared i386-dregs.c.

(The "common" moniker was a not-to-great idea that we're moving away from.
"common" suggests that what we put there is necessarily "common" between more
than one thing, instead of suggesting what the code is supposed to do.
If some change in GDB or GDBserver makes it so that some code in common/ is
no longer used in one of GDB or GDBserver's, then what to do?
Thus, "nat/" -- it holds native target specific code.  From GDBserver's
perspective, it's target backends are native targets.  This was all
previously discussed before, months ago, but we haven't updated the wiki
yet.  We should.)

-- 
Pedro Alves


  reply	other threads:[~2014-06-18 18:01 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-18 15:23 Gary Benson
2014-06-18 15:23 ` [PATCH 1/4 v2] Partially revert 4be83cc2b28ea09aa8ff789839e6520df60836f8 Gary Benson
2014-06-19  9:10   ` Pedro Alves
2014-06-18 15:23 ` [PATCH 4/4 v2] Directly call i386-dregs functions Gary Benson
2014-06-19  9:11   ` Pedro Alves
2014-06-18 15:23 ` [PATCH 2/4 v2] Refactor i386_{insert,remove}_hw_breakpoint Gary Benson
2014-06-19  9:10   ` Pedro Alves
2014-06-18 15:53 ` [PATCH 3/4 v2] Create nat/i386-dregs.c Gary Benson
2014-06-19  9:11   ` Pedro Alves
2014-06-18 16:06 ` [PATCH 0/4 v2] Refactor shared code in i386-{nat,low}.[ch] Mark Kettenis
2014-06-18 16:10   ` Pedro Alves
2014-06-18 17:48     ` Mark Kettenis
2014-06-18 18:01       ` Pedro Alves [this message]
2014-06-19 10:45         ` Pedro Alves
2014-06-19 10:07 ` [COMMITTED PATCH " Gary Benson

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=53A1D408.5020001@redhat.com \
    --to=palves@redhat.com \
    --cc=gbenson@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=mark.kettenis@xs4all.nl \
    /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