Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Maciej W. Rozycki" <macro@codesourcery.com>
To: Yao Qi <yao@codesourcery.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH 1/3] Include asm/ptrace.h in mips-linux-nat.c
Date: Thu, 13 Jun 2013 17:49:00 -0000	[thread overview]
Message-ID: <alpine.DEB.1.10.1306131752490.16287@tp.orcam.me.uk> (raw)
In-Reply-To: <1369881867-11372-2-git-send-email-yao@codesourcery.com>

On Thu, 30 May 2013, Yao Qi wrote:

> This patch is to include asm/ptrace.h in mips-linux-nat.c and remove
> some duplicated structs already defined in asm/ptrace.h.

 You missed the local definitions of the PTRACE_GET_WATCH_REGS and 
PTRACE_SET_WATCH_REGS macros that could also be removed, however...

> The ptrace support for hardware support was added into kernel in Sep.
> 2008 and the mips hardware watchpoint for native GDB was committed
> on April 2009.  Considering the time order, GDB doesn't have to carry
> these local definitions, and should include asm/ptrace.h instead.

 ... this change actually resulted in a graceless build failure for me:

../../src/gdb/mips-linux-nat.c:599: error: storage size of 'dummy_regs' isn't known

etc. for the very reason the system I used for testing has old kernel 
headers installed (2.6.19 it would seem, according to <linux/version.h>).  

 Such a failure is not acceptable from the user's point of view; I think 
there are three ways to deal with this:

1. Add an autoconf test that checks for the presence of a key 
   <asm/ptrace.h> definition; I think 'struct pt_watch_regs' is a good 
   candidate.  If that test does not succeed, then the configure process 
   fails gracefully stating the minimum released version of kernel headers 
   required.

2. Add the same test, except in the failure case fall back to the internal 
   definitions we already have, wrapped into #ifndef 
   HAVE_STRUCT_PT_WATCH_REGS.

3. Add the same test and disable hardware watchpoint support in the 
   failure case.

 The user ABI of the Linux kernel has a stability guarantee and your 
change makes GDB stop building on this otherwise fine system, so I'd lean 
towards the second choice, moving all the stuff into 
common/mips-linux-watch.h as per your second patch in this series.  I am 
not entirely sure what the general practice about such changes in GDB has 
been though, so I'd ask other maintainers for opinion here.

 Note that likewise the local PTRACE_GET_THREAD_AREA definition could be 
removed if relying on <asm/ptrace.h> for watchpoint support as the macro 
has already been defined in the 2.6.19 version I have on this system that 
does not have watchpoint definitions yet.  For this reason I think it will 
be better actually if common/mips-linux-watch.h relies on <asm/ptrace.h> 
having been included earlier on by the source file including the former 
header.

 For the record the system I intended to run native testing on does indeed 
support hardware watchpoints, although a minimal number of them:

hardware watchpoint	: yes, count: 2, address/irw mask: [0x0ffc, 0x0ffb]

-- i.e. a single data watchpoint and a single execution watchpoint only 
(as noted by the "irw mask" field, taking the 3 LSBs of the values 
reported).  I expect to have results by the end of tomorrow and will let 
you know how that has gone.

 Would general maintainers please comment on the three-way choice and the 
preferred way to move forward I outlined above?

  Maciej


  reply	other threads:[~2013-06-13 17:37 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-30  2:44 [PATCH 0/3] mips hardware watchpoint support in gdbserver Yao Qi
2013-05-30  2:44 ` [PATCH 2/3] Move mips hardware watchpoint stuff to common/ Yao Qi
2013-06-13  4:12   ` Yao Qi
2013-06-19 22:05     ` Maciej W. Rozycki
2013-06-20 14:21       ` Yao Qi
2013-06-20 15:27         ` Maciej W. Rozycki
2013-06-20 17:50           ` Joel Brobecker
2013-06-21  8:03             ` Maciej W. Rozycki
2013-06-21 15:55               ` Joel Brobecker
2013-05-30  2:44 ` [PATCH 1/3] Include asm/ptrace.h in mips-linux-nat.c Yao Qi
2013-06-13 17:49   ` Maciej W. Rozycki [this message]
2013-06-14  6:53     ` Yao Qi
2013-06-14 12:53       ` Maciej W. Rozycki
2013-06-20 19:40         ` Pedro Alves
2013-06-20 20:45           ` Maciej W. Rozycki
2013-06-21 14:58             ` Pedro Alves
2013-06-17 16:04     ` Maciej W. Rozycki
2013-05-30  2:44 ` [PATCH 3/3] MIPS h/w watchpoint in GDBserver Yao Qi
2013-06-13  8:20   ` Yao Qi
2013-06-13 13:09     ` Eli Zaretskii
2013-06-13 16:56     ` Pedro Alves
2013-06-19 22:22     ` Maciej W. Rozycki
2013-06-21 15:00       ` Pedro Alves
2013-05-30 12:29 ` [PATCH 0/3] mips hardware watchpoint support in gdbserver Maciej W. Rozycki
2013-05-30 18:06 ` Pedro Alves
2013-05-30 18:08   ` Pedro Alves
2013-06-29  3:11 ` [PATCH v2 0/5] " Yao Qi
2013-06-29  3:11   ` [PATCH 3/5] Refactor in mips-linux-nat.c Yao Qi
2013-07-24  0:27     ` Maciej W. Rozycki
2013-07-28  0:44       ` Yao Qi
2013-06-29  3:11   ` [PATCH 2/5] Include asm/ptrace.h " Yao Qi
2013-07-24  0:26     ` Maciej W. Rozycki
2013-07-28  0:43       ` Yao Qi
2013-06-29  3:11   ` [PATCH 5/5] MIPS GDBserver watchpoint Yao Qi
2013-06-29 15:20     ` Eli Zaretskii
2013-07-24  0:35     ` Maciej W. Rozycki
2013-07-25  0:17       ` Yao Qi
2013-07-25 21:20         ` Maciej W. Rozycki
2013-07-28  0:49           ` Yao Qi
2013-07-24 18:11     ` Pedro Alves
2013-06-29  3:11   ` [PATCH 1/5] Share 'enum target_hw_bp_type' in GDB and GDBserver Yao Qi
2013-07-24  0:26     ` Maciej W. Rozycki
2013-07-24 14:04       ` Tom Tromey
2013-07-28  0:41         ` Yao Qi
2013-06-29  8:01   ` [PATCH 4/5] Move mips hardware watchpoint stuff to common/ Yao Qi
2013-07-24  0:31     ` Maciej W. Rozycki
2013-07-24  2:08       ` Yao Qi
2013-07-24 18:09         ` Pedro Alves
2013-07-25  0:07       ` Yao Qi
2013-07-25 21:17         ` Maciej W. Rozycki
2013-07-28  0:47           ` Yao Qi
2013-07-22  1:11   ` [PATCH v2 0/5] mips hardware watchpoint support in gdbserver Yao Qi

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=alpine.DEB.1.10.1306131752490.16287@tp.orcam.me.uk \
    --to=macro@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.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