From d49850d6abb1b70c34be99a46e383a6a878ae19e Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 16 Jun 2015 16:04:35 -0700 Subject: [PATCH] Fixes for building gdbserver (and gdb) out of the box. Bug: http://b/21695943 Change-Id: Iadb600b2ae619515d7038a4db9bf464ba31adb36 (cherry picked from commit 895241efbba344c1590b76fcada89c48f4743cf2) --- libc/include/sys/procfs.h | 3 +++ libc/include/sys/ptrace.h | 24 ++++++++++++++++++++++-- libc/include/sys/wait.h | 3 +++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/libc/include/sys/procfs.h b/libc/include/sys/procfs.h index ef5b25ff8..b5b1a4667 100644 --- a/libc/include/sys/procfs.h +++ b/libc/include/sys/procfs.h @@ -42,6 +42,9 @@ typedef fpregset_t elf_fpregset_t; typedef elf_gregset_t prgregset_t; typedef elf_fpregset_t prfpregset_t; +typedef pid_t lwpid_t; +typedef void* psaddr_t; + __END_DECLS #endif /* _SYS_PROCFS_H_ */ diff --git a/libc/include/sys/ptrace.h b/libc/include/sys/ptrace.h index 8bba9fe43..4b881e743 100644 --- a/libc/include/sys/ptrace.h +++ b/libc/include/sys/ptrace.h @@ -34,11 +34,31 @@ __BEGIN_DECLS -/* glibc uses different names from the kernel for these two... */ +/* glibc uses different PTRACE_ names from the kernel for these two... */ #define PTRACE_POKEUSER PTRACE_POKEUSR #define PTRACE_PEEKUSER PTRACE_PEEKUSR -extern long ptrace(int, ...); +/* glibc exports a different set of PT_ names too... */ +#define PT_TRACE_ME PTRACE_TRACEME +#define PT_READ_I PTRACE_PEEKTEXT +#define PT_READ_D PTRACE_PEEKDATA +#define PT_READ_U PTRACE_PEEKUSR +#define PT_WRITE_I PTRACE_POKETEXT +#define PT_WRITE_D PTRACE_POKEDATA +#define PT_WRITE_U PTRACE_POKEUSR +#define PT_CONT PTRACE_CONT +#define PT_KILL PTRACE_KILL +#define PT_STEP PTRACE_SINGLESTEP +#define PT_GETFPREGS PTRACE_GETFPREGS +#define PT_ATTACH PTRACE_ATTACH +#define PT_DETACH PTRACE_DETACH +#define PT_SYSCALL PTRACE_SYSCALL +#define PT_SETOPTIONS PTRACE_SETOPTIONS +#define PT_GETEVENTMSG PTRACE_GETEVENTMSG +#define PT_GETSIGINFO PTRACE_GETSIGINFO +#define PT_SETSIGINFO PTRACE_SETSIGINFO + +long ptrace(int, ...); __END_DECLS diff --git a/libc/include/sys/wait.h b/libc/include/sys/wait.h index 8d9a5f650..12b73082c 100644 --- a/libc/include/sys/wait.h +++ b/libc/include/sys/wait.h @@ -45,6 +45,9 @@ __BEGIN_DECLS #define WIFSTOPPED(s) (WTERMSIG(s) == 0x7f) #define WIFSIGNALED(s) (WTERMSIG((s)+1) >= 2) +#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) +#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) + extern pid_t wait(int *); extern pid_t waitpid(pid_t, int *, int); extern pid_t wait4(pid_t, int *, int, struct rusage *);