From aa58a496ed9a3ee19233af0bfb7c76ae02b9b2c1 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 29 Jul 2015 17:15:46 -0400 Subject: [PATCH] MIPS ptrace build fixes Since Pedro's ptrace cleanups, the MIPS buildbot compilation fails. Code in MIPS native uses ptrace with 3 arguments, where ptrace requires 4. When looking at the definition of ptrace in /usr/include/sys/ptrace.h, it shows that it takes a variable number of arguments. The wrapper macro in nat/gdb_ptrace.h takes a fixed number of arguments (4). That would explain why it used to work and stopped. I am pushing this as obvious, tell me if there is any problem. I built-tested this with a MIPS toolchain (ct-ng), but I don't have any setup to test it. At least it should put back the buildbot builder in a better shape. gdb/ChangeLog: * mips-linux-nat.c (write_watchpoint_regs): Add NULL as ptrace's 4th parameter. (mips_linux_new_thread): Likewise. * nat/mips-linux-watch.c (mips_linux_read_watch_registers): Likewise. gdb/gdbserver/ChangeLog: * linux-mips-low.c (mips_linux_prepare_to_resume): Add NULL as ptrace's 4th parameter. --- gdb/ChangeLog | 7 +++++++ gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/linux-mips-low.c | 2 +- gdb/mips-linux-nat.c | 4 ++-- gdb/nat/mips-linux-watch.c | 2 +- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0c24f0c4e32..8dee2da6b1b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2015-07-29 Simon Marchi + + * mips-linux-nat.c (write_watchpoint_regs): Add NULL as ptrace's 4th + parameter. + (mips_linux_new_thread): Likewise. + * nat/mips-linux-watch.c (mips_linux_read_watch_registers): Likewise. + 2015-07-29 Patrick Palka * top.c: Include "tui/tui.h". diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 5b4236a9ab1..2e039b5479e 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2015-07-29 Simon Marchi + + * linux-mips-low.c (mips_linux_prepare_to_resume): Add NULL as + ptrace's 4th parameter. + 2015-07-27 Yao Qi * configure.srv (case aarch64*-*-linux*): Don't set diff --git a/gdb/gdbserver/linux-mips-low.c b/gdb/gdbserver/linux-mips-low.c index d3b01d61f95..770f0df52d5 100644 --- a/gdb/gdbserver/linux-mips-low.c +++ b/gdb/gdbserver/linux-mips-low.c @@ -427,7 +427,7 @@ mips_linux_prepare_to_resume (struct lwp_info *lwp) int tid = ptid_get_lwp (ptid); if (-1 == ptrace (PTRACE_SET_WATCH_REGS, tid, - &priv->watch_mirror)) + &priv->watch_mirror, NULL)) perror_with_name ("Couldn't write watch register"); } diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index 961cb6f8636..6df618d380f 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -614,7 +614,7 @@ write_watchpoint_regs (void) ALL_LWPS (lp) { tid = ptid_get_lwp (lp->ptid); - if (ptrace (PTRACE_SET_WATCH_REGS, tid, &watch_mirror) == -1) + if (ptrace (PTRACE_SET_WATCH_REGS, tid, &watch_mirror, NULL) == -1) perror_with_name (_("Couldn't write debug register")); } return 0; @@ -634,7 +634,7 @@ mips_linux_new_thread (struct lwp_info *lp) return; tid = ptid_get_lwp (lp->ptid); - if (ptrace (PTRACE_SET_WATCH_REGS, tid, &watch_mirror) == -1) + if (ptrace (PTRACE_SET_WATCH_REGS, tid, &watch_mirror, NULL) == -1) perror_with_name (_("Couldn't write debug register")); } diff --git a/gdb/nat/mips-linux-watch.c b/gdb/nat/mips-linux-watch.c index 02d83f65bf8..231dbe02a30 100644 --- a/gdb/nat/mips-linux-watch.c +++ b/gdb/nat/mips-linux-watch.c @@ -164,7 +164,7 @@ mips_linux_read_watch_registers (long lwpid, { if (force || *watch_readback_valid == 0) { - if (ptrace (PTRACE_GET_WATCH_REGS, lwpid, watch_readback) == -1) + if (ptrace (PTRACE_GET_WATCH_REGS, lwpid, watch_readback, NULL) == -1) { *watch_readback_valid = -1; return 0; -- 2.30.2